请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

只关注响应式原理这样理解没错吧

  1. vue用Object.defineProperty重写属性的get和set方法
  2. 并给每个属性new一个dep对象用于订阅当前的watcher
  3. 在get方法中将当前渲染watcher订阅到dep中
  4. 在set方法中遍历dep中订阅的watcher执行update方法
  5. 如果目标属性是对象就递归确保每个属性都能实现双向绑定

渲染watcher
vue在new渲染watcher的时候会将组件挂载更新的方法(updateComponent)传入,存储在渲染watcher中,触发渲染watcher的update方法时实际上是触发这个组件挂载更新方法

正在回答 回答被采纳积分+3

1回答

ustbhuangyi 2022-08-03 23:26:23

其他都没啥问题,但是响应式不是双向绑定。其实响应式原理是 一种单向行为,它是数据到 DOM 的映射。而真正的双向绑定,除了数据变化会引起 DOM 的变 化之外,还应该在操作 DOM 改变后,反过来影响数据的变化。


2 回复 有任何疑惑可以回复我~
  • 提问者 凊風丶 #1
    谢谢老师
    回复 有任何疑惑可以回复我~ 2022-08-04 07:33:00
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信