上班第一天沒事做寫篇博客。。。
前段時間出去面試了下,《Vue不能檢測數組和對象的變化》這個問題很高頻提起,今天來聊下這個問題
先看官網文檔說明:
情況一:新增的值不會觸發響應(刪除同理)
情況二:原有的值改變會觸發響應

情況三:vue提供的方法$set可以觸發響應

其實就是對象、數組數據的增/刪徐用vue提供的方法$set,官網例子:

對象一次性添加多個屬性:

巴拉啦說了一大堆,其實就是一句話對象屬性的增/刪、數組的元素增/刪用vue提供的方法最為穩妥,不然容易導致數據無響應
提一嘴vue2.0與3.0數據的雙向綁定區別:
2.0:使用Object.defineProperty來劫持對象屬性的 geter 和 seter 操作,當數據發生改變發出通知
3.0:使用ES6的新特性porxy來劫持數據,當數據改變時發出通知
面試的時候可以用這個延伸vue3的一些話題,
好的面試是面試官提出一個知識點,然后面試者作出自己的理解並主動延伸相關知識點的話題
2.0:使用Object.defineProperty來劫持對象屬性的 geter 和 seter 操作,當數據發生改變發出通知
3.0:使用ES6的新特性porxy來劫持數據,當數據改變時發出通知
面試的時候可以用這個延伸vue3的一些話題,
好的面試是面試官提出一個知識點,然后面試者作出自己的理解並主動延伸相關知識點的話題
貼個大佬關於
深入了解Object.defineProperty的博客寫的很好:https://www.cnblogs.com/youhong/p/12173354.html