更新時間:2021-01-15 來源:黑馬程序員 瀏覽量:
Vue中如何監(jiān)控某個屬性值的變化?比如現(xiàn)在需要監(jiān)控data中,obj.a 的變化。Vue中監(jiān)控對象屬性的變化你可以這樣:
watch: { obj: {
handler (newValue, oldValue) {
console.log('obj changed')
},
deep: true
}
}
deep屬性表示深層遍歷,但是這么寫會監(jiān)控obj的所有屬性變化,并不是我們想要的效果,所以做點修改:
watch: { 'obj.a': {
handler (newName, oldName) {
console.log('obj.a changed')
}
}
}
還有一種方法,可以通過computed 來實現(xiàn),只需要:
computed: {
a1(){
return this.obj.a
}
}
利用計算屬性的特性來實現(xiàn),當(dāng)依賴改變時,便會重新計算一個新值。
猜你喜歡:
Vue3中Proxy實現(xiàn)數(shù)據(jù)監(jiān)聽的優(yōu)勢?