美文网首页
vue响应式原理 精简版

vue响应式原理 精简版

作者: 两朵小黑云 | 来源:发表于2020-08-24 11:18 被阅读0次
image.png
  • 1.从 new Vue 开始,首先通过 get、set 监听 Data 中的数据变化,同时创建 Dep 用来搜集使用该 Data 的 Watcher。
  • 2.编译模板,创建 Watcher,并将 Dep.target 标识为当前 Watcher。
  • 3.编译模板时,如果使用到了 Data 中的数据,就会触发 Data 的 get 方法,然后调用 Dep.addSub 将 Watcher 搜集起来。
  • 4.数据更新时,会触发 Data 的 set 方法,然后调用 Dep.notify 通知所有使用到该 Data 的 Watcher 去更新 DOM

上图分析了 Vue 初始化到渲染 DOM 的整个过程,最后我们再分析一下,当数据变化时,Vue 又是怎么进行更新的?

在 Data 变化时,会调用 Dep.notify 方法,随即调用 Watcher 内部的 update 方法,此方法会将所有使用到这个 Data 的 Watcher 加入一个队列,并开启一个异步队列进行更新,最终执行 _render 方法完成页面更新.

Watcher 其实是在 Vue 初始化的阶段创建的,属于生命周期中 beforeMount 的位置创建的,创建 Watcher 时会执行 render 方法,最终将 Vue 代码渲染成真实的 DOM。

图解 Vue 响应式原理https://juejin.im/post/6857669921166491662

相关文章

网友评论

      本文标题:vue响应式原理 精简版

      本文链接:https://www.haomeiwen.com/subject/pmagjktx.html