Vue 响应式系统的触发更新 (Triggering Updates) 机制

酷雪姑娘_7169

酷雪姑娘_7169

2026-06-22

465人浏览

原创

vue响应式更新采用“标记→收集→批量执行”流程:setter触发依赖通知,watcher入队后异步批量更新dom,需用nexttick()确保获取更新后的dom。

vue 响应式系统的触发更新 (triggering updates) 机制

Vue 的响应式更新不是一改就立刻重绘,而是经过一套“标记→收集→批量执行”的流程。关键在于:数据变化本身不直接操作 DOM,而是触发依赖通知,再由系统统一调度视图更新。

setter 触发依赖通知

当你修改一个响应式属性(如 obj.count = 5),实际调用的是 Vue 内部重写的 setter。这个 setter 不只是赋值,还会做两件事:

  • 更新内部值,并检查新旧值是否真的不同(避免无意义触发)
  • 调用该属性对应的 Dep.notify(),遍历所有订阅它的 Watcher(比如组件渲染函数、计算属性、watch 回调)

Watcher 接收通知并入队

每个 Watcher 收到通知后,并不会马上重新渲染。它会把自己标记为“待更新”,然后被推入一个全局异步更新队列:

vue-composition-api-best-practices
vue-composition-api-best-practices

Vue 3 组合式 API 与

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
uni-app快速上手
uni-app快速上手

共0课时 | 0人学习

Vue 教程
Vue 教程

共42课时 | 17.2万人学习

Vue3.x 工具篇--十天技能课堂
Vue3.x 工具篇--十天技能课堂

共26课时 | 2.5万人学习