响应式原理

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

posted @ 2023-02-22 20:17  baller  阅读(69)  评论(0)    收藏  举报