Vue 中如何进行依赖收集


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])
}

文章作者: 高红翔
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 高红翔 !
  目录