Appearance
vue2 响应式原理
Vue 的 proto 注入

init 流程

mount 流程

data 处理流程

组件逻辑梳理
- 在
Vue原型上挂有各种方法 - 调用组件的 init,通过Observe将
data的get,set劫持做好,定义好了每个 data[key]对应一个 Dep 实例,每个 dep 实例会与当前活动的watcher进行互相绑定 - 实例化 Watcher,调用
watcher实例的get方法。get方法会触发组件的更新方法,内部访问了data被劫持的属性,用来生成虚拟 dom。通过上一部的劫持逻辑,当前组件所依赖的 data 内的数据,与 watcher 进行了绑定 - 当数据变化时,
dep实例会调用watcher的upate方法,将watcher实例的dirty设为true watcher实例dirty为true,将会在以后再次触发了组件的更新方法,重新收集依赖(将之前的依赖清空)