setup细节
1、setup的执行时机
在beforeCreate之前执行(一次),此时组件对象还没有创建
this是undefined,不能通过this来访问data/computed/methods/props
其实所有的compositionAPI相关回调函数中也都不可以
2、setup的返回值
一般都返回一个对象:为模板提供数据,也就是模板中可以直接使用此对象中的所有属性/方法
返回对象中的属性会与data函数返回对象的属性合并成为组件对象的属性
返回对象中的方法会与Methods中的方法合并成为组件对象的方法
如果有重名,setup优先
注意:
一般不要混合使用:methods中可以访问setup提供的属性和方法,但在setup方法中不能访问data和methods
setup不能是一个async函数:因为返回值不在是return的对象,而是promise,模板看不到return对象中的属性数据
3、setup的参数
setup(props,context)/setup(props,{attrs,slots,emit})
props:包含props配置声明且传入了的所有属性对象
attrs:包含没有在props配置中声明的属性对象,相当于this.$attrs
slots:包含了所有传入的插槽内容的对象,相当于this.$slots
emit:用来分发自定义事件的函数,相当于this.$emit