双向数据绑定原理图


用户 视图 ViewModel 观察者 依赖收集器 Watcher 虚拟DOM 真实DOM 输入数据 触发input事件 更新数据 通知变化 通知所有Watcher 更新虚拟DOM 与旧虚拟DOM对比 更新真实DOM 更新显示 用户看到更新后的界面 在初始化时,Observer会为每个属性创建一个Dep 初始化时,Watcher会被添加到相应的Dep中 Vue使用虚拟DOM来优化更新性能 用户 视图 ViewModel 观察者 依赖收集器 Watcher 虚拟DOM 真实DOM

  1. 用户在视图中输入数据。
  2. 视图触发ViewModel中的input事件。
  3. ViewModel通知Observer更新数据。
  4. Observer检测到数据变化,通知相应的Dep(依赖收集器)。
  5. Dep通知所有相关的Watcher。
  6. Watcher触发虚拟DOM的更新。
  7. 虚拟DOM进行内部对比,找出需要更新的部分。
  8. 虚拟DOM更新真实DOM。
  9. 真实DOM更新视图显示。
  10. 用户看到更新后的界面。
相关推荐
英俊潇洒美少年14 小时前
js 同步异步,宏任务微任务的关系
开发语言·javascript·ecmascript
用户693717500138414 小时前
Android 手机终于能当电脑用了
android·前端
wooyoo15 小时前
花了一周 vibe 了一个 OpenClaw 的 Agent 市场,聊聊过程中踩的坑
前端·后端·agent
angerdream15 小时前
最新版vue3+TypeScript开发入门到实战教程之路由详解
前端·javascript·vue.js
送鱼的老默15 小时前
学习笔记--vue3 watch监听的各种姿势用法和总结
前端·vue.js
猪八宅百炼成仙15 小时前
解决 el-date-picker type:daterange 在 layout 布局中的宽度问题
前端·element
小贺要学前端15 小时前
ES6 还没用明白,JavaScript 已经快到 ES2026 了
前端·javascript·es6
Amumu1213815 小时前
JS:ES6~ES11基础语法(二)
开发语言·前端·javascript
Amumu1213816 小时前
Js:ES6~ES11基础语法(一)
开发语言·前端·javascript
英俊潇洒美少年16 小时前
#React 16/17/18/19 超精简速记版(面试前5分钟背完)
前端·react.js·面试