双向数据绑定原理图


用户 视图 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. 用户看到更新后的界面。
相关推荐
爱吃大芒果5 分钟前
从零开始学 Flutter:状态管理入门之 setState 与 Provider
开发语言·javascript·flutter
shenzhenNBA5 分钟前
如何在python文件中使用日志功能?简单版本
java·前端·python·日志·log
掘金泥石流7 分钟前
分享下我创业烧了 几十万的 AI Coding 经验
前端·javascript·后端
用户47949283569159 分钟前
JavaScript 为什么选择原型链?从第一性原理聊聊这个设计
前端·javascript
new code Boy14 分钟前
vscode左侧栏图标及目录恢复
前端·javascript
唐诗15 分钟前
Git提交信息太乱?AI一键美化!一行命令拯救你的项目历史🚀
前端·ai编程
BrianGriffin21 分钟前
JS異步:setTimeout包裝為sleep
开发语言·javascript·ecmascript
涔溪30 分钟前
有哪些常见的Vite插件及其作用?
前端·vue.js·vite
糖墨夕30 分钟前
从一行代码看TypeScript的精准与陷阱:空值合并vs逻辑或
前端·typescript
Junsen37 分钟前
使用 Supabase 实现轻量埋点监控
前端·javascript