如下所示:
var vm=new Vue({ data:{ a:1, b:{ c:1 } }, watch:{ a(val, oldVal){//普通的watch監(jiān)聽 console.log("a: "+val, oldVal); }, b:{//深度監(jiān)聽,可監(jiān)聽到對(duì)象、數(shù)組的變化 handler(val, oldVal){ console.log("b.c: "+val.c, oldVal.c);//但是這兩個(gè)值打印出來卻都是一樣的 }, deep:true } }})vm.a=2vm.b.c=2a是一個(gè)普通的值,當(dāng)a的值變化時(shí)會(huì)被監(jiān)聽到,b是一個(gè)對(duì)象,不能直接像a那么寫,需要深度監(jiān)聽才能捕捉到,但是當(dāng)我想去捕捉b對(duì)象中某一個(gè)值的變化時(shí)卻發(fā)現(xiàn),打印出來的兩個(gè)值是不一樣的,如圖:

這樣就只能知道對(duì)象發(fā)生變化卻不知道具體哪個(gè)值發(fā)生了變化,如果想監(jiān)聽對(duì)象某一個(gè)值得變化可以利用計(jì)算屬性computed
var vm=new Vue({ data:{ b:{ c:1 } }, watch:{ newValue(val, oldVal){ console.log("b.c: "+val, oldVal); } }, computed: { newValue() { return this.b.c } }})vm.b.c=2用watch去監(jiān)聽computed計(jì)算過的值就可以直接知道是哪個(gè)對(duì)應(yīng)的值發(fā)生了變化,結(jié)果如圖:

以上這篇vue watch監(jiān)聽對(duì)象及對(duì)應(yīng)值的變化詳解就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持武林網(wǎng)。
新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注