1,數組或對象指針變化時會觸發視圖的重新渲染,
2,數組使用vue變異方法時,因為vue對變異方法做了包裝所以也能觸發視圖變化,
3,使用vue.$set改變其屬性也能觸發視圖渲染。
原因在官方文檔上有寫明:
注意:在變異 (不是替換) 對象或數組時,舊值將與新值相同,因為它們的引用指向同一個對象/數組。Vue 不會保留變異之前值的副本。
1,可以得出以下猜測,watch監聽的是數組或者對象的變動,非深度監聽,無法監聽屬性變化,而深度監聽時,數組或對象的任何變動都會導致指針的變化,變異時除外
2,什么是對象和數組的變異:即object.difineporperty()無法監聽到的數據變化(watch同樣依賴於object.difineporperty());
參考以下文檔:
數組變異方法和替換數組 https://blog.csdn.net/xie_qi_chao/article/details/104909859
Vue源碼解析之數組變異 https://www.cnblogs.com/karthuslorin/p/10045326.html