VUE的watch監聽對象


因為普通監聽對象時,其實監聽的該對象存放的堆地址,只有聲明關鍵子字(deep: true)才能監聽整個對象中所有屬性變化;

當然如果監聽的對象只有一兩個屬性,也可以直接分別監聽其屬性;
//聲明對象
data() {
  return {
    obj: {
      name: '黃國華'
    }
  }
},
watch: {
  obj: {
    handler: function(newVal, oldVal) {
      console.log(newVal, oldVal);  //因為對象為引用類型數據,所以新舊值其實是同一個,沒有差異
    },
    deep: true,  //關鍵字,只有聲明deep: true才能監聽到整個對象的變化
    immediate: true  //關鍵字, 此關鍵字聲明為true時,監聽對象的初始化就會觸發監聽事件
  }
},
//驗證一下
mounted() {
  this.obj.name = '你變了o(╥﹏╥)o';
}
watch監聽對象

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM