双向数据绑定原理图


用户 视图 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. 用户看到更新后的界面。
相关推荐
多客软件佳佳37 分钟前
便捷的线上游戏陪玩、线下家政预约以及语音陪聊服务怎么做?系统代码解析
前端·游戏·小程序·前端框架·uni-app·交友
_Feliz1 小时前
vue2实现word在线预览
前端·javascript·vue.js·elementui·vue-office
huoyueyi1 小时前
超详细Chatbot UI的配置及使用
前端·ui·chatgpt
_不是惊风2 小时前
vue预览和下载 pdf、ppt、word、excel文档,文件类型为链接或者base64格式或者文件流,
vue.js·pdf·powerpoint
Qlittleboy2 小时前
vue的elementUI 给输入框绑定enter事件失效
前端·vue.js·elementui
Violet_Stray2 小时前
用bootstrap搭建侧边栏
前端·bootstrap·html
软件聚导航2 小时前
对uniApp 组件 picker-view 的二次封装,实现日期,时间、自定义数据滚动选择,容易扩展
前端·javascript·html
浮游本尊2 小时前
对象、函数、原型之间的关系
开发语言·javascript·原型模式
码农丁丁2 小时前
[前端]mac安装nvm(node.js)多版本管理
前端·macos·node.js·nvm
TWenYuan3 小时前
【上传文件过大进行的切片式上传】
javascript·vue.js