vue3.0要在template中使用某些变量就必须在最后return出来,多次声明变量,不太方便,也不太友好。而在vue3.2版本之后,我们只需在script标签上加上setup属性,不需要再写return就可以直接在template中使用,
1、变量、方法不需要renturn
变量、方法以及import导入的内容不用在 return 暴露出来,不需要写 export default 和 setup 函数,只需在 script 标签加上 setup 属性,直接声明变量、方法以及import导入的内容使用即可,使模板代码更加简洁。
2、引入组件自动注册
在 script setup 语法糖中引入组件,组件不需要在 components 中注册了,引入的组件会自动注册,而且组件无法指定 name属性,主要以文件的名字为主,省略name属性
3、defineProps和defineEmits
在script setup中必须使用 defineProps 和 defineEmits API 来声明 props 和 emits ,它们具备完整的类型推断并且在 script setup 中不需要导入是直接可用的。传入到 defineProps 和 defineEmits 的选项会从 setup 中提升到模块的范围,因此,传入的选项不能引用在 setup 范围中声明的局部变量,这样做会引起编译错误。
4、defineExpose
defineExpose可以主动暴露出组件的属性和方法。
5、useSlots和useAttrs
在 script setup 使用 slots 和 attrs 的情况应该是很比较少见的,大部分人是(SFC)模式开发,在<template/>通过<slot/>标签就可以渲染插槽,可以在模板中通过 $slots 和 $attrs 来访问它们。主要在JSX /TSX使用比较多。
6、顶层await
<script setup>
中可以使用顶层 await。结果代码会被编译成 async setup(),await 的表达式会自动编译成在 await 之后保留当前组件实例上下文的格式。
原文链接:https://blog.csdn.net/weixin_47342392/article/details/126841110
标签:变量,script,setup,await,语法,Vue3.2,组件,属性 From: https://www.cnblogs.com/niufang/p/16902382.html