1.为什么要用响应式原理
实现数据与视图的自动更新操作。
2.响应式原理是什么?
当我们修改一个变量时,会有某些操作可以自动执行
3.怎么做?
vue使用object.defineproperty更新定义data中的所有属性
响应式原理过程
数据观测:数据在初始化时会通过observe方法来调用Observe
1.对象观测 使用Object.definceProperty对数据进行劫持,值是对象类型,需要调用observe进行递归观测
通过Object.defineProperty对属性定义后,属性的获取触发get回调,属性的设置触发set回调,实现响应式更新 (vue 3.0使用proxy代替Object.defineProperty,Proxy是代理整个对象)
2.数组观测 对于数组观测调用observeArray方法,与对象不同,它执行observe对数组内的对象类型进行观测,并没有对数组的每一项进行Object.defineProperty的定义,通过数组索引对数组进行修改时,不会触发更新。但可以通过this.$set来修改触发更新
当数组元素新增或删除,视图会随之更新。vue内部重写了数组的方法,调用这些方法时,数组会更新检测 push、pop、shift、unshift、splice、sort、reverse
标签:Object,更新,观测,响应,数组,defineProperty,原理 From: https://www.cnblogs.com/baller-coder/p/17144553.html