setup的两个注意点
setup执行的时机 在beforeCreate之前执行一次,this.是undefined setup的参数 Props:值为对象,包含:组件外部传递过来,且组件内部声明接收了的属性
Context:上下文对象 Attrs:值为对象,包含:组件外部传递过来,但没有在props配置中声明的属性相当于this.slots emit:分发自定义事件的函数,相当于this.$emit
watch: 监听reactive所定义的响应式,
-
1.注意:此处无法正确获取oldValue -
2.注意:强制开启了深度监视(deep配置无效) 监视reactive所定义的响应式的某个属性时,deep配置有效 -
watch(()=>reactive定义的属性,(newValue,oldValue)=>{},{deep:true})
watchEffect函数
watch的套路是:既要指明监视的属性,也要指明监视的回调。
watchEffect的套路是:不用指明监视哪个属性,监视的回调中用到哪个属性,那就监视哪个属性 watchEffect有点像computed: 但computed注重的计算出来的值(回调函数的返回值),所以必须要写返回值 而watchEffect更注重的是过程(回调函数的函数题),所以不用写返回值
自定义hook函数
- 什么是hook?----本质是一个函数,把setup函数中使用的Composition API进行了封装。 类似于vue2.X中的mixin
- 自定义hook的优势:复用代码,让setup中的逻辑更清晰易懂。
toref
- 作用:创建一个ref对象,其value值指向另一个对象中的某个属性 语法:const name = toRef(person,'name')
- 应用:要将响应式对象中的某个属性单独提供给外部使用
- 扩展:torefs与toref功能一致,但可以批量创建多个ref对象,语法:torefs(person)