vue3 script setup 语法糖用了才知道有多爽 (三)
创始人
2025-05-31 15:42:23
0

文章目录

    • 4. context 之 slots 和 attrs
      • setup() 中的 context参数
      • 已经弃用的 useContext()
    • 5. defineExpose()
      • 小结


这里是完整的目录图片,由于整篇文章篇幅太长,拆分成了几篇来展示
在这里插入图片描述

4. context 之 slots 和 attrs

setup() 中的 context参数

我们都知道在 Vue3 语法当中 setup() 的第一个参数是 props,第二个参数是 context
props 用 defineProps API 来替换掉了
而 context 是一个对象,并且这个对象中有三个属性,分别是 attrs, slots, emit
当我们需要事件派发的时候,直接使用 emit 就可以了
那么 setupContext.attrs 以及 setupContext.slots 在 script setup 语法当中应该怎样使用呢?


useSlots 和 useAttrs 是真实的运行时函数,它的返回与 setupContext.slots 和 setupContext.attrs 等价。
它们同样也能在普通的组合式 API 中使用。

已经弃用的 useContext()

在查找相关资料的时候有看到关于 useContext() 的用法 (可以通过 useContext() 从上下文中获取 emit slots 和 attrs),但是现在关于 useContext 已经弃用了,废除了这个语法,被拆分成上面的 useAttrs 和 useSlots
以下图片来自别的参考资料,但是现在已经弃用了
在这里插入图片描述
测试使用报错 : The requested module '/node_modules/.vite/deps/vue.js?v=8da96c73' does not provide an export named 'useContext' (at child.vue:6:33)



在这里插入图片描述
在这里插入图片描述

5. defineExpose()

Vue 3 可以利用 expose 结合 ref 来让父组件使用子组件的数据 ( 可以对数据进行修改 )和方法
在 Vue 3 的新特性中,如果使用的是 options api 类型的组件,在不声明 expose 的时候,默认暴露当前组件实例的全部内容 (所有的属性和方法),如果使用 expose 选项的话,只有 expose 中的内容才会暴露 (expose:[ ] 就表示什么都不暴露,可以利用这个特性来提高组件的使用规范 )
如果使用的是 setup script 的语法糖, 默认是关闭 expose 的, 子组件未暴露的数据以及方法在父组件中无法直接获取引用,需要子组件使用 defineExpose 将其主动暴漏出来

Vue 3 setup() 语法

父组件



子组件




子组件



就像这个例子子组件中暴露的这样,将属性 msg , 方法 m1 暴露出来,父组件通过 ref 获取到子组件的实例就可以访问到了

小结

  • defineExpose 可以直接使用,无需引入
  • 当父组件通过模板引用的方式获取到当前组件的实例,获取到的实例会像是这个样子的 {a:number,b:number} (ref 会和在普通实例中一样被自动解包)

vue3 script setup 语法糖用了才知道有多爽 (一)
vue3 script setup 语法糖用了才知道有多爽 (二)

相关内容

热门资讯

一天22个大V账号被封 平台出... 雪球大V“金浤”被罚之后,一天之内,22个大V账号被永久封禁,平台连续出手整治涉资本市场违规行为。 ...
罕见!自砍七成融资规模,百瑞吉... 导读:过去一年中,为了尽快向A股大门靠近,百瑞吉还付出了不小的代价——大幅削减融资规模。近年来,拟北...
氢能商业化难题待解,记者实探云... 本报(chinatimes.net.cn)记者胡雅文 曲靖报道 氢能商业化仍在探索中。 近年来国家和...
原创 西... 哥本哈根街头,上万名示威者举着“绝不出售格陵兰岛”的标语走向美国驻丹麦大使馆,寒冷的北欧空气中弥漫着...
成品油价或年内首涨! 今日(1月20日)24时,国内成品油新一轮调价窗口将开启。综合多家机构预测,成品油价或年内首涨,消费...
原创 电... 外资来了,不是随便逛街,是掏钱出手,高盛、瑞银、摩根士丹利、摩根大通四家都在名单上,其中三家在202...
信用卡分期纳入贴息,多家银行迅... 【大河财立方消息】1月20日,财政部、中国人民银行、金融监管总局发布《关于优化实施个人消费贷款财政贴...
原创 金... “好家伙,前几天还说金价破纪录了,这转头又掉下来了?这过山车坐的,心脏真受不了。”最近但凡关心点金价...
卖不动了?巨头宣布:降价!10... 自2022年见顶以来,受主要消费国奢侈品消费降温、培育钻石日益走俏等因素影响,钻石行业正遭遇现代史上...
鸣鸣很忙开启招股,2万家店撑起... 1月20日,中国最大的休闲食品饮料连锁零售商——湖南鸣鸣很忙商业连锁股份有限公司(下称“鸣鸣很忙”)...
原创 继... 去年九月的那个深夜,白俄罗斯边境毫无征兆地熄火了,原本跑得飞快的中欧班列,在那一刻被人按下了暂停键。...
供应扰动再发酵,碳酸锂尾盘涨停... 经历了一次急速回调后,碳酸锂期货又杀了一个“回马枪”。 1月20日,碳酸锂期货主力合约在尾盘触及涨停...
原创 融... 2026年伊始,A股市场便以一派火热景象迎接投资者,市场热度在多个维度均有所体现,尤其以融资余额的迅...
财经老王丨140万亿元 跟咱老... 来源:甘肃网络广播电视台 2025年,中国经济总量突破140万亿元。这个数字跟咱们老百姓有啥关系呢?...
小红书奶茶养号秘诀——4288... 大家好,我是4288养号盒子,提供专业免费养号软件,不仅有抖音养号,还有小红薯养号等、还有短视频热门...
原创 干... 美国这些年总想在经济上给中国使绊子,从贸易战打到科技限制,可中国那边经济还是稳稳的往前拱。2018年...
纪念币纪念钞二手交易莫冲动 来源:经济日报 目前,二手市场高价接盘的风险很高。一方面,卖家无实物,且二手市场缺乏权威验货渠道,买...
“十年十亿”魔咒告破?全球巨头... 2026年开年,AI制药正以前所未有的速度冲击传统研发的“双十定律”——一款新药研发需要十年时间、耗...
红杉资本考虑参投Anthrop... 红杉资本正准备加入Coatue和新加坡主权财富基金GIC,参与人工智能初创公司Anthropic P...
大行回应!消费贷贴息政策升级,... 来源:第一财经 消费贷贴息政策迎来重要升级,落地细节备受关注。1月20日晚间,多家国有大行表态将积极...