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.下面进行案例演示:

相关推荐
曲莫终10 分钟前
JAVA原生Servlet支持SSE
前端·后端
用户486789525339010 分钟前
Apache ECharts 雷达图详解
前端·javascript
活着也很快乐13 分钟前
vite4 + react18 + react-router-dom6 路由懒加载、路由重定向
前端
吴玺喆15 分钟前
pnpm 10.14 支持JavaScript运行时的安装了
前端
Moment24 分钟前
2025 年,构建高质量 React 项目的技术栈参考 🤔🤔🤔
前端·javascript·react.js
陶甜也32 分钟前
MCP-Blender插件的安装和使用
前端·ai·blender
网小鱼的学习笔记35 分钟前
python基础:数据解析BeatuifulSoup,不需要考虑前端形式的一种获取元素的方法
开发语言·前端·python
aiwery38 分钟前
深入理解React hooks:从设计初衷到自定义Hook指南
前端·设计模式
namehu40 分钟前
阿里云 acme.sh install timeout(超时)问题解析与解决方案
linux·前端·https
浩男孩1 小时前
🍀简简单单使用 TS 封装个工具库【更新中 ✍】
前端·typescript