美文网首页
vue3的计算属性和监视

vue3的计算属性和监视

作者: 变量只提升声明不提升赋值 | 来源:发表于2022-10-09 21:59 被阅读0次
const user =ref({
        firstName:'宇智波',
        lastName:'鼬'
      })
      //计算属性
      //第一种只传入一个回调函数
      const computed1= computed(()=>{
        return user.value.firstName+'_'+user.value.lastName
      })
      console.log(computed1.value,'我是计算属性的第一种用法')
      //第二种,传入get和set方法
      const computed2 = computed({
        get(){
          return user.value.firstName+'_'+user.value.lastName
        },
        set(val){
          console.log(val,'我是set,我被触发了')
        }
      })
      console.log(computed2.value,'我是计算属性的第二种用法')
      computed2.value='asd'
      console.log(computed2)

      //监视
      watch(user,(newVal,oldVal)=>{
        console.log(newVal,oldVal,'我是watch')
      },{immediate:true,deep:true})
      //监视多个属性
      watch([age,user],(n,o)=>{
        console.log(n,o,'watch监视多个属性')
      },{immediate:true})
      //监视对象的属性
      watch([()=>user.value.firstName,()=>user.value.lastName],(n,o)=>{
        console.log(n,o,'watch监视对象的属性')
      },{immediate:true})
      //另外一种监视
      watchEffect(()=>{
        age.value+=user.value.firstName
      })
      setTimeout(()=>{
        user.value.firstName='宇智波佐佐木'
      },3000)

计算属性的使用上来说问题和vue2区别不大,这里要注意computed函数的返回值是一个ref对象,所以在使用的时候需要.value

监视分为两种,watch和watchEffect
第一种和vue2区别也不大,需要注意的点是,这个watch是惰性的,初始化不会自动触发,如果需要初始化的时候就去触发需要传入第三个配置对象,里面有一个immediate属性,配置为true即可。
当我们监听reactive的响应式数据的时候需要通过函数返回值的方式
也就是这样

 watch([()=>user.value.firstName,()=>user.value.lastName],(n,o)=>{
        console.log(n,o,'watch监视对象的属性')
      },{immediate:true})

监听多个属性watch的第一个参数就用数组包裹,返回的新旧数据也是一个数组,按照你传入的那个数据的顺序排列。
监听深层次嵌套数据的时候依然要开启deep深度监视。

watchEffect不是惰性的,他会在初始化的时候就被调用。并且他的内部不需要指定需要监视的属性,回调函数中用到了谁就监听谁,有点类似计算属性。

相关文章

  • Vue3计算属性和监视属性

    计算属性 需要引入computed函数 这里我计算的firstName与laststName加在一起 监视属性 同...

  • vue3的计算属性和监视

    计算属性的使用上来说问题和vue2区别不大,这里要注意computed函数的返回值是一个ref对象,所以在使用的时...

  • 计算属性和监视

    计算属性和监视1.4.1. 计算属性1)在 computed 属性对象中定义计算属性的方法 2)在页面中使用{{方...

  • Vue基本语法和生命周期

    计算属性和监视 计算属性在computed属性对象中定义计算属性的方法在页面中使用{{方法名}}来显示计算的结果 ...

  • Vue的常用的打开姿势

    计算属性和监视 计算属性:1)在 computed 属性对象中定义计算属性的方法2)在页面中使用{{方法名}}来显...

  • Vue基础语法和生命周期

    计算属性和监视 1、计算属性: 在computed属性对象中定义计算属性的方法 在页面中使用{{方法名}}来显示计...

  • VUE计算属性和监视

    计算属性在computed属性对象中定义计算属性的方法在页面中使用{{方法名}}来显示计算的结果 监视属性:通过通...

  • Vue计算属性和监视

    计算属性在vm实例中使用computed属性定义属性的方法在页面中使用插值表达式来显示计算的结果 监视属性通过vm...

  • vue学习(59)计算属性和监视

    知识点 computed函数与Vue2.x中computed配置功能一致写法 watch 与Vue2.x中watc...

  • vue计算属性与监视

网友评论

      本文标题:vue3的计算属性和监视

      本文链接:https://www.haomeiwen.com/subject/jfsnartx.html