vue3中watch使用及watchEffect对比

注意:一、监听reactive定义的响应式数据,此时无法正确获取oldValue,强制开启了深度监视(deep配置无效)

**特殊情况:如果监听的是reactive定义的对象中的某个属性(这个属性依然是一个对象),所以deep配置有效

示例:


二、监听多个数据时需要使用数组的形式,获取值也是数组形式

监听单个ref定义的数据

watch(sum,(newval,oldval)=>{

        //  console.log('sum变了',newval,oldval)

        // })


三、监听reactive定义的一个响应式数据中的某个属性

watch(()=>person.age,(nval,oval)=>{

            console.log('age变化了nval',nval)

            console.log('age变化了oval',oval)

        })


四、监听reactive定义的一个响应式数据中的某些属性

watch([()=>person.age,()=>person.firstname],(nval,oval)=>{

            console.log('person的age或firstname变化了',nval,oval)

        })


五、如果是使用ref定义的对象,可以监听该对象.value或者开启deep:true


watchEffect:相比于watch,watchEffect不需要指定监听的对象、回调,相当于computed计算属性但是不同的是watchEffect不需要返回值,更注重变化的过程

示例:当点击事件触发watchEffect依赖的属性值发生变化时就会执行watchEffect回调


最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • computed 计算属性功能和vue2一样,可以缓存得到的结果,只有当依赖的数据发生变化后才会重新触发的逻辑,计...
    千杯不倒王尧阅读 1,498评论 0 0
  • vue3中的watch监听属性 watch 接收两个参数,第一个参数是监听的属性,多个属性可传入数组, 第二个参数...
    杨羊羊杨阅读 2,030评论 0 0
  • 基础部分 模版语法 1.computed和watch的区别 计算属性computed :支持缓存,data数据不变...
    王蕾_fd49阅读 603评论 0 0
  • 一.简介 2020年9月18日,Vue.js发布3.0版本,代号:One Piece(海贼王) 和vue2相比它的...
    e只咸鱼阅读 2,152评论 4 37
  • vue3.0入门到精通 附B站讲解视频 vue3+typescript入门到精通[https://www.bili...
    王大合阅读 8,611评论 1 4