setup()内部没有绑定this的,打印undefined
setup(props, context)会传递两个参数,props是父传子数据的一个对象,context是上下文,内部有三个属性,attrs表示父组件非prop传递的属性,像class、id,slots表示传递过来的插槽代理对象,emit表示this.$emit() 接收传递的事件名和参数
setup()返回值是一个对象,每一项可以在template中直接使用,类似与vue2的data
直接赋值的属性不是响应式的,如果要让其变成响应式,需要import ref或者reactive方法
使用ref()的时候要注意一个细节
- 当我们在template模板使用ref对象的时候,它会自动进行解包,也就是拿到value值
- 如果ref外层是个普通对象,只能是浅层解包,像info.counter就拿不到值
- 如果外层是个reactive对象,还是会解包的,像reactiveInfo.counter就可以拿到
- 逻辑代码没有自动解包,需要拿到value值再进行其他操作