Object.defineProperty只能劫持对象的属性,而且得深层、遍历对象的每个属性Proxy直接代理整个对象
Object.defineProperty对新增的属性,需要手动递归进行响应式处理(即vm.$set())Proxy直接代理整个对象
- 作者出于性能考虑,
Object.defineProperty没有根据数组索引赋值直接进行响应式处理,而是hack了数组相关的api(原型链上额外插入一个原型对象)Proxy直接代理整个对象,可以直接对数组的下标赋值
Proxy是ES6出的新语法,所以IE全线不支持