1.1 依赖收集的流程
- 每个属性都拥有自己的
dep
属性,存放他所依赖的 watcher,当属性变化后会通知自己对应的 watcher 去更新 - 默认在初始化时会调用 render 函数,此时会触发属性依赖收集
dep.depend
- 当属性发生修改时会触发
watcher
更新dep.notify()
1.2 Vue3
依赖收集
Vue3
中会通过Map
结构将属性和effect
映射起来。- 默认在初始化时会调用 render 函数,此时会触发属性依赖收集
track
, - 当属性发生修改时会找到对应的
effect
列表依次执行trigger
{
{a:1}: new Set([effect1,effect2])
}