因為普通監聽對象時,其實監聽的該對象存放的堆地址,只有聲明關鍵子字(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'; }