vue的数据绑定用Object.defineProperty的getter和setter对一个对象属性的变化进行监听,并且通过依赖关系作出相应的视图更新。但由于js的限制,vue无法检测到以下数组的变动:
1、直接使用索引设置一项时
2、修改数组长度
vue对数组进行特殊处理,将数组的常用方法进行重写,通过包装后的数组方法能够在调用的时候被监听到,将当前数组的变更通知给订阅者,这样,当使用重写后的方法改变数组后,数组订阅者会将变化更更新到页面。
参考:
vue的数据绑定用Object.defineProperty的getter和setter对一个对象属性的变化进行监听,并且通过依赖关系作出相应的视图更新。但由于js的限制,vue无法检测到以下数组的变动:
1、直接使用索引设置一项时
2、修改数组长度
vue对数组进行特殊处理,将数组的常用方法进行重写,通过包装后的数组方法能够在调用的时候被监听到,将当前数组的变更通知给订阅者,这样,当使用重写后的方法改变数组后,数组订阅者会将变化更更新到页面。
参考: