Vue 的响应式原理中 Object.defineProperty 的缺陷

Vue 的响应式原理中 Object.defineProperty 的缺陷

浅谈 Vue2 中的 双向数据绑定原理:
采用数据劫持 结合 发布者-订阅者模式 的方式,通过 Object.defineProperty()来劫持各个属性的setter 和 getter。
Object.defineProperty(object, propertyname, descriptor)是给对象添加属性用的,三个参数分别是 对象、属性名、要添加的属性值

Object.defineProperty 的缺陷
1、无法监控到数组下标的变化,通过数组下标修改元素,无法实时响应
2、只能劫持对象的属性,如果对象的属性还是对象,则需要深度遍历,Proxy 可以劫持整个对象,并返回一个新的对象
3、Proxy 不仅可以代理对象,还可以代理数据,可以代理动态增加的属性

你可能感兴趣的:(面试题,vue.js,前端,javascript)