那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