双向数据绑定原理图


用户 视图 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. 用户看到更新后的界面。
相关推荐
Hopebearer_3 分钟前
页面突然只剩 DOM?一次静态资源版本错配排查
前端·部署
抱抱宝9 分钟前
Agent-study项目教程(03):手写 Mini-ReAct Agent(不依赖框架)
javascript·人工智能·gpt·react.js·prompt·agent
东风破_38 分钟前
ESLint 是什么?为什么你的项目需要它?
前端·后端·代码规范
用户938515635071 小时前
Next.js 笔记系统(二):Redis 数据服务与侧边栏组件拆分实战
javascript·全栈
java1234_小锋2 小时前
Vue3专题 - 组件基础
vue.js·vite
圣殿骑士-Khtangc2 小时前
Go字符串高效拼接性能对比与底层原理分析
服务器·前端·golang
BigTopOne3 小时前
【ijkplayer】 硬解码流程
前端
kyriewen3 小时前
DeepSeek Harness开源第一天我就上手了——和Claude Code的差距比想象中大
前端·ai编程·deepseek
捡田螺的小男孩4 小时前
什么是 Skill?手把手带你写一个简单有用的 Skill!
前端·后端·程序员
IT_陈寒4 小时前
Redis集群这个坑,差点让我通宵
前端·人工智能·后端