一、监听对象object
对象object是引用对象,只有改变对象的引用,watch才能正确监听到它的变化,如果只是改变对象的某一属性,则watch监听不到。
1、如下图,修改对象value的引用地址,则watch可以正常监听到。
改变对象的引用地址2、如果只改变对象的属性,则是监听不到的。
改变某一属性3、如何监听到对象属性值的变化???
一般有两种方法:1⃣️使用属性deep深度监听 2⃣️单独监听对象的某一属性(监听字符串)
1⃣️使用属性deep深度监听: 使用该方法是监听对象的所有属性,只要有一个属性值变化,就会监听到。一般会很消耗内存。(缺点:在handler函数中只能获取到变化后的对象,变化前的对象获取不到。后续请查阅资料。)
使用deep属性监听对象属性的变化2⃣️单独监听对象的某一属性(监听字符串):可以单独监听对象的某一属性,其余属性变化不监听。
单独监听对象某一属性二、监听数组
在变异 (不是替换) 对象或数组时,旧值将与新值相同,因为它们的引用指向同一个对象/数组。Vue 不会保留变异之前值的副本。
网友评论