当前位置: 首页 > news >正文

Vue3学习(Vue3.3新特性——defineOptions宏)

目录

一、Vue3.3新特性——defineOptions宏。

(1)背景介绍与探讨。(详细)

(2)defineOptions宏函数。


一、Vue3.3新特性——defineOptions宏。

(1)背景介绍与探讨。(详细)
  • 在 <script setup> 出现之前,Vue3还是通过一个setup(){...}选项去写代码。


  • 在使用 <script setup> 后,整个script都被setup占满了。这就意味着setup属性没有了,就没有办法为其添加相应的平级属性(如props、emits等等)。


  • 这就让对应的生命周期函数、computed计算属性、watch侦听器等都是对应成Vue3组合式API里的专门函数
  • 为了解决属性props、emits的配置问题,就引入了对应的 defineProps(接收父传子的数据)defineEmit(进行子传父) 这两个宏函数!其实底层也是最终编译出对应的配置项props、emits。具体学习可以看博主之前的博客:Vue3学习(组合式API——父、子组件间通信详解)-CSDN博客。

  • 但如果需要定义组件的name属性或其他的自定义属性,还是得回到最原始的方法——再添加一个普通的<script>标签。这样就会存在两个<script>标签,让人还是无法接受!
  • 可以演示一下具体情况。在src目录下新建一个views目录,在该目录下新建两个子目录(login、register)。两个子目录下分别新建index.vue组件。这时就需要写两个<script>标签,一个用于属性name,另外一个就是setup。


(2)defineOptions宏函数。
  1. 根据上方的背景介绍下就在Vue3.3新引入了 defineOptions 宏
  2. 所以 defineOptions 就是用来定义 Option API 的选项可以使用 defineOptions 定义任意的选项!
  3. 为 <script setup> 提供选项式 API 风格的组件元信息声明,即允许在组合式 API 中直接定义 name、inheritAttrs 等选项无需额外导出 export default {}


  • 其中props、emits、expose(defineExpose)、slots除外。因为这些可使用提供的专用 defineXXX 来完成。关于 defineExpose 宏的使用可以在博主博客中了解!Vue3学习(组合式API——ref模版引用与defineExpose编译宏函数)-CSDN博客


  • 现在就可以修改之前写两个<script>标签并定义name组件名的代码了。
<!--<script>
export default {name: 'LoginIndex'
}
</script>--><script setup>
defineOptions({name: 'LoginIndex'
})
</script><template><div>我是登录页</div>
</template><style scoped></style>
<script>
/*export default {name: 'RegisterIndex'
}*/
</script><script setup>
defineOptions({name: 'RegisterIndex'
})
</script><template><div>我是注册页</div>
</template><style scoped></style>
http://www.xdnf.cn/news/516457.html

相关文章:

  • 基于 AT89C51 的多路智力竞赛抢答器设计与实现
  • 【ComfyUI】关于ComfyUI的一些基础知识和入门设置以及快捷键小技巧【简单易懂】
  • 【Vue篇】数据秘语:从watch源码看响应式宇宙的蝴蝶效应
  • etcd基础
  • 2026武汉门窗门业移门木门铝艺门智能锁展会3月国博举办
  • OpenCV-图像分割
  • 基于 STM32 的全自动洗车监控系统设计与实现
  • AI Agent开发第70课-彻底消除RAG知识库幻觉(4)-解决知识库问答时语料“总重复”问题
  • 【Linux网络编程】Socket编程-Socket理论入门
  • 【深度学习】#12 计算机视觉
  • 31、魔法生物图鉴——React 19 Web Workers
  • 系分论文《论信息系统缓存的分析和应用》
  • 从代码学习深度学习 - 近似训练 PyTorch版
  • 什么是着色器 Shader
  • fme条件属性值
  • 【LLIE专题】基于Retinex理论的transformer暗光增强
  • Spark,数据提取和保存
  • LearnOpenGL---着色器
  • 板凳-------Mysql cookbook学习 (三)
  • Qwen3数据集格式化指南:从对话模板到推理模式,结合Unsloth实战演练
  • 高压BOOST芯片-TPQ80302
  • <前端小白> 前端网页知识点总结
  • 脚本一键完成alist直接在windows上进行磁盘映射为本地磁盘webdav
  • jqGrid冻结列错行问题,将冻结表格(悬浮表格)与 正常表格进行高度同步
  • 计算机网络概要
  • Oracle 内存优化
  • 给easyui的textbox绑定回车事件
  • 翻译:20250518
  • Go 后端中双 token 的实现模板
  • 需求与实际业务需求脱节,怎么办?