Vue不能檢測數組和對象的變化


上班第一天沒事做寫篇博客。。。

前段時間出去面試了下,《Vue不能檢測數組和對象的變化》這個問題很高頻提起,今天來聊下這個問題

先看官網文檔說明:

情況一:新增的值不會觸發響應(刪除同理)

 

 情況二:原有的值改變會觸發響應

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


免責聲明!

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



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