vue2响应式原理

实现原理

​ 对象类型:通过Object.defineProperty()对属性的读取、修改进行拦截(数据劫持)

​ 数组类型:通过重写更新数组的一系列方法来实现拦截(对数租的变更方法进行了包裹)

1
2
3
4
Object.defineProperty(data,'count',{
get(){},
set(){}
})

存在问题

​ 新增属性、删除属性,界面不会更新

​ 直接通过下标修改数组,界面也不会更新