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

setup() 函数与语法糖

文章目录

    • 一、先一句话总纲
    • 二、先讲最原始的:setup() 函数
    • 三、再讲现在主流:<script setup>
    • 四、两者功能对比(最关键)
    • 五、最核心区别(背这一段就够)
    • 六、你能立刻记住的超级口诀
    • 七、我再用最通俗的话总结一遍
    • 八、注册(components)不能写在setup函数里

一、先一句话总纲

-setup():Vue3 原来的原始写法,手动挡,要写return,麻烦。```javascript-<script setup>:官方给的语法糖(简写版),自动挡,不用return,代码更少,现在全都用这个。

二、先讲最原始的:setup() 函数

你就把它理解成:
组件的入口函数,比 beforeCreate 还早执行。

  1. 里面没有 this

this = undefined
不能用 this.$refs、this.message 之类。

  1. 接收两个参数
jssetup(props,context){}
  • props:父组件传过来的值(响应式,但不能改)
  • context:里面有 emit、attrs、slots
  1. 必须 return!

你在 setup 里定义的变量、方法,
不 return,模板就看不见!

jssetup(){constcount=ref(0)return{count}// 不 return 模板用不了}

缺点

麻烦、啰嗦、要写一堆重复代码。

三、再讲现在主流:

它就是:
Vue 帮你自动把代码塞进 setup() 里,还自动 return。

  1. 不用写 return

你定义啥,模板直接用:

vue

<script setup>constcount=ref(0)</script>
<template>{{count}}<!--直接用!不用return--></template>
  1. 导入组件就能用
jsimportChildfrom'./Child.vue'

直接在模板用 ,不用注册!

原始写法还要:

jsexportdefault{components:{Child}}

script setup 全都省了。

四、两者功能对比(最关键)

1.接收 props 原始 setup: jsexportdefault{props:['title'],setup(props){console.log(props.title)}}script setup: jsconstprops=defineProps({title:String})2.触发事件 emit
原始 setup: jssetup(props,{emit}){emit('my-event')}script setup: jsconstemit=defineEmits(['my-event'])emit('my-event')3.获取 attrs、slots 原始 setup 用 context: jssetup(props,{attrs,slots})script setup 用API: jsimport{useAttrs,useSlots}from'vue'constattrs=useAttrs()constslots=useSlots()

五、最核心区别(背这一段就够)

  1. setup()
  • 手动写,手动 return
  • 要写 export default、components
  • 代码多,适合老项目、复杂控制
    • 不用 return
    • 导入组件直接用
    • 用 defineProps / defineEmits
    • 现在官方推荐、所有人都用这个

    六、你能立刻记住的超级口诀

    • 原始 setup:手动挡,要 return,麻烦。
    • script setup:自动挡,不用 return,简洁好用。
    • 功能一模一样,只是写法不一样。
    • 现在开发全都用 script setup。

    七、我再用最通俗的话总结一遍

    >-setup()是基础版本,什么都要自己写>-<script setup>是懒人舒适版,Vue 帮你把重复的事全干了。>-它们底层跑起来是一样的。>-你以后写 Vue3,直接用<script setup>就对了

    八、注册(components)不能写在setup函数里

    1. 先看注册(components)
      Vue 知道:我能用哪些组件,叫什么名字。

    2. 再解析模板
      看到 ,去表里查:有这个名字,认识。

    3. 最后才执行 setup
      去运行子组件自己的逻辑,生成数据、渲染内容。

    http://www.jsqmd.com/news/375414/

    相关文章:

  1. 除皱抗衰产品推荐,全球老龄化加剧,高活(GoHealth)全层级体感NMN标杆、聚焦全民保健 - 资讯焦点
  2. 放假前的这几天才是程序员们最舒心的时光
  3. ref和reactive
  4. NMN推荐,2026年口碑最热门款NMN抗衰产品,2026年NMN口碑榜单解读,科学抗衰与用户体感双重考量 - 资讯焦点
  5. Cursor+Claude AI编程 - 利用Cursor生成一个helloWord网页
  6. 价值投资AI多智能体系统:AI应用架构师精准决策的关键步骤
  7. NMN品牌推荐,吃NMN真能抗衰老吗?2026权威抗衰老补充剂综合测评:NAD+赋能激活细胞活力 - 资讯焦点
  8. NMN哪个牌子口碑最好?为什么人会衰老?解码线粒体功能与NAD+流失背后真相与五大权威品牌实测 - 资讯焦点
  9. BISHI40数组取精
  10. AI Agent的对比学习与表示学习
  11. Elasticsearch 聚合分析:大数据统计与可视化的利器
  12. 宝妈必藏|2026中国十大童装品牌盘点,好看好穿不踩雷#中国十大童装品牌 #十大童装品牌 - 品牌测评鉴赏家
  13. 追求效率与健康的平衡:多筒分区洗衣机推荐与深度选购解析 - 资讯焦点
  14. NAD+哪个牌子效果最好?口服抗衰老产品推荐,NMN哪个牌子好?2026真正值得选购的十大NMN品牌 - 资讯焦点
  15. 萌娃时尚秘籍:中国十大童装品牌全解析 - 品牌测评鉴赏家
  16. YOLOv13涨点改进 | 独家创新,卷积改进篇 | TGRS 2025 | 引入RFEM感受野增强模块,增强特征的全局结构和上下文表达能力,含多种创新改进,助力目标检测、遥感目标检测任务有效涨点
  17. 极萌美容仪好用吗?安全与操作体验深度剖析 - 资讯焦点
  18. YOLOv13涨点改进 | 独家创新,特征融合涨点改进篇 | TGRS 2025 | 引入ATEM仿射变换融合增强模块,含多种创新改进点,对边缘和纹理信息进行自适应增强,提升小目标和弱目标检测能力
  19. 晚间护肤美容仪推荐,极萌三款,高效修护不费力 - 资讯焦点
  20. 2026最新十大知名装饰板材品牌推荐榜!优质环保品质与高性价比源头厂家选择指南,适配多场景优质之选 - 品牌推荐2026
  21. 美容仪哪个牌子好?五大热门品牌实测,极萌胶原炮凭实力出圈 - 资讯焦点
  22. 实用指南:微调阶段中的模型自我提升、通用模型蒸馏和数据扩充
  23. 家用什么产品美白效果好?三款神器焕亮肌肤暗沉 - 资讯焦点
  24. 2026国内多所知名高校优选的无线信道仿真软件! - 资讯焦点
  25. 什么产品抗衰效果好?四款宝藏抗衰好物揭秘! - 资讯焦点
  26. __attribute__((constructor))
  27. LLM创造力可以被度量吗?一个基于提示词变更的探索性实验
  28. 786785678
  29. 2026年软考高项信息系统项目管理师认证十大高通过率培训机构老师权威评测 - 资讯焦点
  30. Java求职面试:从Spring Boot到微服务的技术问答