1.setup语法糖简介
直接在script标签中添加setup属性就可以直接使用setup语法糖了。
使用setup语法糖后,不用写setup函数;组件只需要引入不需要注册;属性和方法也不需要再返回,可以直接在template模板中使用。
<template> <my-component @click="func" :numb="numb"></my-component> </template> <script lang="ts" setup> import {ref} from 'vue'; import myComponent from '@/component/myComponent.vue'; //此时注册的变量或方法可以直接在template中使用而不需要导出 const numb = ref(0); let func = ()=>{ numb.value++; } </script>
2.setup语法糖中新增的api
defineProps:子组件接收父组件中传来的props
defineEmits:子组件调用父组件中的方法
defineExpose:子组件暴露属性,可以在父组件中拿到
2.1defineProps
父组件代码
<template> <my-component @click="func" :numb="numb"></my-component> </template> <script lang="ts" setup> import {ref} from 'vue'; import myComponent from '@/components/myComponent.vue'; const numb = ref(0); let func = ()=>{ numb.value++; } </script>
子组件代码
<template> <div>{{numb}}</div> </template> <script lang="ts" setup> import {defineProps} from 'vue'; defineProps({ numb:{ type:Number, default:NaN } }) </script>
2.2defineEmits
子组件代码
<template> <div>{{numb}}</div> </template> <script lang="ts" setup> import {defineProps} from 'vue'; defineProps({ numb:{ type:Number, default:NaN } }) </script>
父组件代码
<template> <my-component @addNumb="func" :numb="numb"></my-component> </template> <script lang="ts" setup> import {ref} from 'vue'; import myComponent from '@/components/myComponent.vue'; const numb = ref(0); let func = ()=>{ numb.value++; } </script>
2.3defineExpose
子组件代码
<template> <div>子组件中的值{{numb}}</div> <button @click="onClickButton">数值加1</button> </template> <script lang="ts" setup> import {ref,defineExpose} from 'vue'; let numb = ref(0); function onClickButton(){ numb.value++; } //暴露出子组件中的属性 defineExpose({ numb }) </script>
父组件代码
<template> <my-comp ref="myComponent"></my-comp> <button @click="onClickButton">获取子组件中暴露的值</button> </template> <script lang="ts" setup> import {ref} from 'vue'; import myComp from '@/components/myComponent.vue'; //注册ref,获取组件 const myComponent = ref(); function onClickButton(){ //在组件的value属性中获取暴露的值 console.log(myComponent.value.numb) //0 } //注意:在生命周期中使用或事件中使用都可以获取到值, //但在setup中立即使用为undefined console.log(myComponent.value.numb) //undefined const init = ()=>{ console.log(myComponent.value.numb) //undefined } init() onMounted(()=>{ console.log(myComponent.value.numb) //0 }) </script>
本文转载自:https://blog.csdn.net/weixin_44439874/article/details/122126954
相关推荐
该项目集成了 Vue3 Vite setup语法糖 Pinia VueRouter Element Plus Axios 等,目前公司必备开发知识、已封装为二次开发框架,减少项目构建以提升开发效率,基础语法偏多,更适合于基础较弱的同学。其中包括了...
vue3 【项目资源】:包含前端、后端、移动开发、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源,毕业设计等各种技术项目的源码。包括C++、Java、python、web、C#、EDA等项目的源码。 【适用...
【项目资源】:包含前端、后端、移动开发、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源,毕业设计等各种技术项目的源码。包括C++、Java、python、web、C#、EDA等项目的源码。...
在这个例子中,我们使用了 `<script setup>` 语法糖,这是 Vue 3 特有的一个特性,它简化了组件脚本的编写方式。`ref` 函数用于创建响应式的引用类型数据,这样就可以直接在模板中访问 `count` 的值。 #### 结论 ...
SmartAdmin使用SpringBoot2 和 Vue3 Setup标签、 Composition Api (同时支持JavaScript和TypeScript双版本) ,开发出的一套简洁、易用的低代码中后台解决方案! 我们开源一套漂亮的代码和一套整洁的代码规范,让大家...
3、全篇采用<script setup>语法糖形式 4、通过带着读者手写简化版 封装技巧,了解 核心原理。全文极简备注!在书写的过程中会摘取整体框架中的核心逻辑,简化代码实现过程,保留核心功能,例如:生命周期、上下文、...
2. **Setup函数**:在Vue3组件中,`setup`函数是新的入口点,用于设置组件的状态和响应式属性。在这里,你可以使用Composition API来组织代码,同时它可以访问`props`和`vue实例`。 3. **模板语法**:Vue3保留了...
1. Vue3:Composition API、setup 函数和响应式系统的改进。 2. Vite:快速的开发服务器和构建工具,提升开发效率。 3. Element-Plus:企业级 UI 组件库,适用于 Vue3 的界面设计。 4. Pinia:Vue3 的状态管理库,...
3. **模板语法**:Vue3的模板语法保持了与Vue2的向后兼容,但在Vue3中,更推荐使用模板内表达式和`v-bind`、`v-on`的缩写形式,如`:`和`@`。Vue3-Captcha的模板可能包含这些元素,用于渲染和绑定组件的属性。 4. **...
此外,还引入了`<script setup>`语法糖,简化了组件的编写,同时提高了编译时的优化。 8. **TypeScript 集成**:Vue3 具有原生的TypeScript支持,包括类型检查和自动完成,提高了代码质量和开发效率。 9. **...
本项目基于Vue3、Vite和ECharts框架构建了一个专门用于大数据可视化的模板,适用于大屏展示。以下是关于这些技术和如何在项目中应用它们的详细解释。 首先,Vue3是Vue.js的最新版本,它提供了许多性能优化和开发...
Vue3 的每个组件都包含一个 `setup` 函数,它是组件生命周期中的第一个钩子。在这个函数里,你可以初始化 `ref`、`reactive` 以及使用其他 Composition API。`setup` 函数接收两个参数:`props` 和 `context`,它们...
Vue3,springboot,element-ui使用技巧,实战应用开发小系统参考资料,源码参考。测试代码可运行。 详细介绍了一些Qt框架的各种功能和模块,以及如何使用Qt进行GUI开发、网络编程和跨平台应用开发等。 适用于初学者...
在Vue3中使用TinyMCE,我们可以利用其强大的功能并结合Vue的新特性,如Composition API和setup语法糖,来实现更加灵活和高效的组件化开发。 首先,我们来看一下如何在Vue3项目中安装和配置TinyMCE。在解压后的文件...
开发者可以通过这个项目学习到Vue3的组件设计、响应式属性、模板语法以及如何利用Vue Router进行页面导航。 2. "zheye-master":虽然名称不明确,但通常这样的项目可能包含了一些特定功能或组件的示例,如动画效果...
Vue.js 是一个流行的前端JavaScript框架,它以组件化开发、...通过研究这个项目,开发者可以深入理解Vue 3的Composition API、模板语法、CSS使用以及状态管理等核心概念,从而提升在实际项目中的开发效率和代码质量。
4. **模板语法更新**: Vue3模板语法保留了原有的基础,但也进行了一些调整。例如,`v-if`和`v-for`现在更推荐在模板中使用,而不是在指令中,以提高性能。同时,增加了`teleport`指令,可以将元素渲染到DOM树的其他...
- **优化的模板语法**: 更简洁的模板,如 `<script setup>`,简化组件定义。 2. **Element-Plus**: 这是 Element UI 的 Vue3 版本,提供了以下特点: - **全面兼容 Vue3**: 其组件和 Vue3 的 Composition API ...
Vue3 引入了 `<script setup>` 语法,使得组件定义更为简洁。 4. `router`:如果项目使用 Vue Router,这个目录会包含路由配置文件,定义各个页面及其跳转规则。 5. `store`(如果使用 Vuex):Vuex 状态管理的...