重点
- Vue之所以它的数据是响应式的,核心点在于Vue内部有一个
Object.defineProperty的东西。 - 默认Vue在初始化数据的时候,会给data中的属性使用
Object.defineProperty来重新定义所有属性,当页面取到对应属性时,会进行依赖收集(收集当前组件的watcher)如果属性发生变化,就会通知相关依赖进行更新操作,从而实现数据的响应式。
原理图:
对象的响应式数据原理图

【Vue】对象数据的响应式处理过程图.jpg
数组的响应式数据的原理图

【Vue】数组 响应式数据的原理实现图.jpg
Vue响应式的原理图解

【Vue】响应式原理.jpg