vue watch監(jiān)聽對象及對應值的變化詳解
如下所示:
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)聽到對象、數(shù)組的變化
handler(val, oldVal){
console.log("b.c: "+val.c, oldVal.c);//但是這兩個值打印出來卻都是一樣的
},
deep:true
}
}
})
vm.a=2
vm.b.c=2
a是一個普通的值,當a的值變化時會被監(jiān)聽到,b是一個對象,不能直接像a那么寫,需要深度監(jiān)聽才能捕捉到,但是當我想去捕捉b對象中某一個值的變化時卻發(fā)現(xiàn),打印出來的兩個值是不一樣的,如圖:

這樣就只能知道對象發(fā)生變化卻不知道具體哪個值發(fā)生了變化,如果想監(jiān)聽對象某一個值得變化可以利用計算屬性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計算過的值就可以直接知道是哪個對應的值發(fā)生了變化,結果如圖:

以上這篇vue watch監(jiān)聽對象及對應值的變化詳解就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
淺談vue獲得后臺數(shù)據(jù)無法顯示到table上面的坑
這篇文章主要介紹了淺談vue獲得后臺數(shù)據(jù)無法顯示到table上面的坑,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-08-08
vue?async?await?promise等待異步接口執(zhí)行完畢再進行下步操作教程
在Vue中可以使用異步函數(shù)和await關鍵字來控制上一步執(zhí)行完再執(zhí)行下一步,這篇文章主要給大家介紹了關于vue?async?await?promise等待異步接口執(zhí)行完畢再進行下步操作的相關資料,需要的朋友可以參考下2023-12-12
VUE使用DXFParser組件解析dxf文件生成圖片的操作代碼
這篇文章主要介紹了VUE使用DXFParser組件解析dxf文件生成圖片的操作代碼,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2023-09-09

