`
zhangdaiscott
  • 浏览: 446749 次
  • 性别: Icon_minigender_1
  • 来自: 北京
博客专栏
8fb25857-16b4-3681-ab5e-e319f45c42a8
Jeecg快速开发平台
浏览量:0
文章分类
社区版块
存档分类

vue3:setup语法糖

阅读更多

 

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+ts+setup语法糖中使用图片预览组件

    总结,Vue3+ts+setup语法糖提供了强大的开发体验,结合`vue-preview`库,我们可以轻松实现图片预览功能。在实际项目中,还可以进一步优化,例如添加错误处理、图片懒加载等功能,提升用户体验。

    【Vue3 + Vite + setup语法糖 + Pinia + VueRouter + Element Plus】开发框架

    该项目集成了 Vue3 Vite setup语法糖 Pinia VueRouter Element Plus Axios 等,目前公司必备开发知识、已封装为二次开发框架,减少项目构建以提升开发效率,基础语法偏多,更适合于基础较弱的同学。其中包括了...

    基于vue3.2(setup语法糖)+vite创建的自己的ui组件库并实现按需导入

    vue3 【项目资源】:包含前端、后端、移动开发、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源,毕业设计等各种技术项目的源码。包括C++、Java、python、web、C#、EDA等项目的源码。 【适用...

    基于vue3.2(setup语法糖)+vite创建的自己的ui组件库并实现按需导入.zip

    【项目资源】:包含前端、后端、移动开发、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源,毕业设计等各种技术项目的源码。包括C++、Java、python、web、C#、EDA等项目的源码。...

    Vue3:革新的前端框架.docx

    在这个例子中,我们使用了 `&lt;script setup&gt;` 语法糖,这是 Vue 3 特有的一个特性,它简化了组件脚本的编写方式。`ref` 函数用于创建响应式的引用类型数据,这样就可以直接在模板中访问 `count` 的值。 #### 结论 ...

    使用SpringBoot2和Vue3 Setup语法糖、 Composition Api开发的简洁、易用的低代码中后台解决方案

    SmartAdmin使用SpringBoot2 和 Vue3 Setup标签、 Composition Api (同时支持JavaScript和TypeScript双版本) ,开发出的一套简洁、易用的低代码中后台解决方案! 我们开源一套漂亮的代码和一套整洁的代码规范,让大家...

    vue3企业级项目二次封装el-table、分页

    3、全篇采用&lt;script setup&gt;语法糖形式 4、通过带着读者手写简化版 封装技巧,了解 核心原理。全文极简备注!在书写的过程中会摘取整体框架中的核心逻辑,简化代码实现过程,保留核心功能,例如:生命周期、上下文、...

    vue3基础语法&示例demo.zip

    2. **Setup函数**:在Vue3组件中,`setup`函数是新的入口点,用于设置组件的状态和响应式属性。在这里,你可以使用Composition API来组织代码,同时它可以访问`props`和`vue实例`。 3. **模板语法**:Vue3保留了...

    基于 vue3 + vite + element-plus 开发的管理系统模板,使用了最新的 setup 语法。.zip

    1. Vue3:Composition API、setup 函数和响应式系统的改进。 2. Vite:快速的开发服务器和构建工具,提升开发效率。 3. Element-Plus:企业级 UI 组件库,适用于 Vue3 的界面设计。 4. Pinia:Vue3 的状态管理库,...

    vue3-captcha(vue3行为验证码)

    3. **模板语法**:Vue3的模板语法保持了与Vue2的向后兼容,但在Vue3中,更推荐使用模板内表达式和`v-bind`、`v-on`的缩写形式,如`:`和`@`。Vue3-Captcha的模板可能包含这些元素,用于渲染和绑定组件的属性。 4. **...

    vue3课件-入门.zip

    此外,还引入了`&lt;script setup&gt;`语法糖,简化了组件的编写,同时提高了编译时的优化。 8. **TypeScript 集成**:Vue3 具有原生的TypeScript支持,包括类型检查和自动完成,提高了代码质量和开发效率。 9. **...

    基于 vue3、vite、Echart 框架的大数据可视化(大屏展示)模板

    本项目基于Vue3、Vite和ECharts框架构建了一个专门用于大数据可视化的模板,适用于大屏展示。以下是关于这些技术和如何在项目中应用它们的详细解释。 首先,Vue3是Vue.js的最新版本,它提供了许多性能优化和开发...

    基于vue3实现的纯静态登录+分页搜索演示代码,供学习

    基于vue3,setup语法糖,实现的用户名密码登录,进入列表查询页面,可以根据关键词,分页查询。 数据是模拟的,不支持后端交互

    Vue3-demo 示例代码

    Vue3 的每个组件都包含一个 `setup` 函数,它是组件生命周期中的第一个钩子。在这个函数里,你可以初始化 `ref`、`reactive` 以及使用其他 Composition API。`setup` 函数接收两个参数:`props` 和 `context`,它们...

    Vue3和element-plus 搭建的一个admin系统.zip

    Vue3,springboot,element-ui使用技巧,实战应用开发小系统参考资料,源码参考。测试代码可运行。 详细介绍了一些Qt框架的各种功能和模块,以及如何使用Qt进行GUI开发、网络编程和跨平台应用开发等。 适用于初学者...

    vue3中使用tinyMCE

    在Vue3中使用TinyMCE,我们可以利用其强大的功能并结合Vue的新特性,如Composition API和setup语法糖,来实现更加灵活和高效的组件化开发。 首先,我们来看一下如何在Vue3项目中安装和配置TinyMCE。在解压后的文件...

    vue3 demo.zip

    开发者可以通过这个项目学习到Vue3的组件设计、响应式属性、模板语法以及如何利用Vue Router进行页面导航。 2. "zheye-master":虽然名称不明确,但通常这样的项目可能包含了一些特定功能或组件的示例,如动画效果...

    vue3的前端规范.zip

    4. **模板语法更新**: Vue3模板语法保留了原有的基础,但也进行了一些调整。例如,`v-if`和`v-for`现在更推荐在模板中使用,而不是在指令中,以提高性能。同时,增加了`teleport`指令,可以将元素渲染到DOM树的其他...

    vue-calc:使用Vue 3进行日常使用的简单实用数字项目

    Vue.js 是一个流行的前端JavaScript框架,它以组件化开发、...通过研究这个项目,开发者可以深入理解Vue 3的Composition API、模板语法、CSS使用以及状态管理等核心概念,从而提升在实际项目中的开发效率和代码质量。

    vue3+element-plus+admin

    - **优化的模板语法**: 更简洁的模板,如 `&lt;script setup&gt;`,简化组件定义。 2. **Element-Plus**: 这是 Element UI 的 Vue3 版本,提供了以下特点: - **全面兼容 Vue3**: 其组件和 Vue3 的 Composition API ...

Global site tag (gtag.js) - Google Analytics