更新時間: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的所有屬性變化,并不是我們想要的效果,所以做點(diǎn)修改:
watch: { 'obj.a': { handler (newName, oldName) { console.log('obj.a changed') } } }
還有一種方法,可以通過computed 來實(shí)現(xiàn),只需要:
computed: { a1(){ return this.obj.a } }
利用計(jì)算屬性的特性來實(shí)現(xiàn),當(dāng)依賴改變時,便會重新計(jì)算一個新值。
猜你喜歡:
Vue3中Proxy實(shí)現(xiàn)數(shù)據(jù)監(jiān)聽的優(yōu)勢?