首頁(yè)技術(shù)文章正文

Vue中如何監(jiān)控某個(gè)屬性值的變化?

更新時(shí)間:2021-01-15 來(lái)源:黑馬程序員 瀏覽量:

1577370495235_學(xué)IT就到黑馬程序員.gif

Vue中如何監(jiān)控某個(gè)屬性值的變化?比如現(xiàn)在需要監(jiān)控data中,obj.a 的變化。Vue中監(jiān)控對(duì)象屬性的變化你可以這樣:

watch: {   obj: {
   handler (newValue, oldValue) {
    console.log('obj changed')
   },
   deep: true
  }
 }

deep屬性表示深層遍歷,但是這么寫會(huì)監(jiān)控obj的所有屬性變化,并不是我們想要的效果,所以做點(diǎn)修改:

watch: {  'obj.a': {
   handler (newName, oldName) {
    console.log('obj.a changed')
   }
  }
 }

還有一種方法,可以通過computed 來(lái)實(shí)現(xiàn),只需要:

computed: {
  a1(){
  return this.obj.a
  }
}

利用計(jì)算屬性的特性來(lái)實(shí)現(xiàn),當(dāng)依賴改變時(shí),便會(huì)重新計(jì)算一個(gè)新值。



猜你喜歡:

Vue3中Proxy實(shí)現(xiàn)數(shù)據(jù)監(jiān)聽的優(yōu)勢(shì)?

在vue中v-for指令中key作用

黑馬程序員前端開發(fā)培訓(xùn)課程



分享到:
在線咨詢 我要報(bào)名
和我們?cè)诰€交談!