数据响应式过程中,如果是对象和数组,会创建一个Observer对象并挂载到该对象或数组的__ob__属性上,此Observer对象内的subs数组持有的Watcher对象,与该对象或数组对应的上级对象的key属性对应的watcher一致(该key会在闭包内创建自己的Dep),如果上级对象仍然是数组,则会继续往上找,直到找到对象属性对应的watcher,直接对该对象增减属性或者对该数组内的某项进行替换并不会通知到Observer,相反通过Vue提供的$set和$delete则会主动通知该对象或数组上的Observer,并最终执行各watcher内的update实现更新,数组的更新同理,通过对数组原型方法进行重写实现主动通知Observer。
Vue源码解读一:Vue数据响应式原理这方面的文章很多,但是我感觉很多写的比较抽象,本文会通过举例更详细的解释。(此文面向的Vue新手们,如果你是个大牛,看到这篇文章就可以点个赞,关掉页面了。)通过阅读这篇文章,...