那vue中是如何檢測數組變化的呢?


vue為什么沒有對數組的每一項進行雙向數據綁定?

1.數組在 JS 中常被當作棧,隊列,集合等數據結構的實現方式,會有批量的數據以待遍歷

Vue 中是通過對每個鍵設置 getter/setter 來實現響應式的,開發者使用數組,目的往往是遍歷,此時調用 getter 開銷太大了,所以 Vue 不在數組每個鍵上設置。

Vue數組中的數據是怎么被監聽的?

看來Vue能對數組進行監聽的原因是,把數組的方法重寫了。總結起來就是這幾步:

01先獲取原生 Array 的原型方法,因為攔截后還是需要原生的方法幫我們實現數組的變化。

02對 Array 的原型方法使用 Object.defineProperty 做一些攔截操作。

03把需要被攔截的 Array 類型的數據原型指向改造后原型。




免責聲明!

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



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