Vue3 中常用的 Composition(组合)API-set 的两个注意点
set 的两个注意点
执行的时机
setup 执行的时机是非常早的,它甚至比 beforeCreate 还要早,并且 this 是 undefined 而不是实例对象
setup 接收到的参数
通过测试得知,setup 可以接受到两个参数
参数 1:props:用于组件传递数据
我们可以通过组件传递数据测试:
这时候出现了警告:
意思是给组件传递了数据但是缺没有接收数据,这个警告在 vue2 中是没有的
想用的话需要声明接收,这时候再看警告就没了,并且 props 里面接收到了参数
如果接收一个不存在的数据,也不会报错,只是会呈现 undefined
参数 2:context
说完了第一个参数,再说说第二个参数,在官方文档里面叫做 context(上下文)
它里面主要有三个属性需要我们注意
1:attrs: 值为对象,包含:组件外部传递过来,但没有在 props 配置中声明的属性, 相当于 this.$attrs
。
2:slots: 收到的插槽内容, 相当于 this.$slots
。
3:emit: 分发自定义事件的函数, 相当于 this.$emit
。
set 的两个注意点总结
setup 执行的时机
在 beforeCreate 之前执行一次,this 是 undefined。
setup 的参数
props:值为对象,包含:组件外部传递过来,且组件内部声明接收了的属性。
context:上下文对象
attrs: 值为对象,包含:组件外部传递过来,但没有在 props 配置中声明的属性, 相当于
this.$attrs
。slots: 收到的插槽内容, 相当于
this.$slots
。emit: 分发自定义事件的函数, 相当于
this.$emit
。
版权声明: 本文为 InfoQ 作者【不觉心动】的原创文章。
原文链接:【http://xie.infoq.cn/article/402a8361d42958a56b10ddc94】。文章转载请联系作者。
评论