Vue基础知识:Vue3.3出现的defineOptions,如何使用,解决了什么问题?

1.那么为什么会出现defineOptions?

原因说明:

有<script setup></script>语法糖应用之前,如果要定义 props,emits 可以轻而易举地添加一个与 setup 平级的属性。但是用了<script setup>后,就没法这么干了整个被 setup语法糖套了,setup 属性已经没有了,自然无法添加与其平级的属性。

如果不用setup的话,可以添加许多平级的属性。如图所示

但是用了setup语法糖就无法添加同级属性了,只能用编译器宏,defineExpose、defineEmit......

为了解决这一问题,引入了 defineProps 与 defineEmits 这两个宏。但这只解决了 props 与 emits 这两个属性,。如果我们要定义组件的 name 或其他自定义的属性,还是得回到最原始的用法--再添加一个普通的 <script>标签,这样就会存在两个<script>标签。让人无法接受,如图所示:

所以在 Vue 3.3 中新引入了 defineOptions 宏。顾名思义,主要是用来定义 0ptions APl的选项。可以用defineOptions 定义任意的选项, props,emits,expose,slots 除外(因为这些可以使用 defineXXX 来做到)

2.下面进行案例演示:

相关推荐
街尾杂货店&31 分钟前
css - 实现三角形 div 容器,用css画一个三角形(提供示例源码)简单粗暴几行代码搞定!
前端·css
顺凡35 分钟前
删一个却少俩:Antd Tag 多节点同时消失的原因
前端·javascript·面试
小白路过37 分钟前
CSS transform矩阵变换全面解析
前端·css·矩阵
爬山算法1 小时前
Redis(110)Redis的发布订阅机制如何使用?
前端·redis·bootstrap
REDcker1 小时前
前端打包工具 - Rollup 打包工具笔记
前端·笔记
前端大卫1 小时前
动态监听DOM元素高度变化
前端·javascript
Cxiaomu1 小时前
React Native App 图表绘制完整实现指南
javascript·react native·react.js
前端大卫1 小时前
Webpack 老项目的优化实践
前端
开利网络1 小时前
合规底线:健康产品营销的红线与避坑指南
大数据·前端·人工智能·云计算·1024程序员节
yinuo2 小时前
纯CSS&JS实现:丝滑渐变过渡的动态导航栏
前端