vue3-------3

64 阅读1分钟

setup的两个注意点

setup执行的时机 在beforeCreate之前执行一次,this.是undefined setup的参数 Props:值为对象,包含:组件外部传递过来,且组件内部声明接收了的属性

Context:上下文对象 Attrs:值为对象,包含:组件外部传递过来,但没有在props配置中声明的属性相当于this.attrsSlots:收到的插槽内容,相当于this.attrs Slots:收到的插槽内容,相当于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)