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

来源:4-8 派发更新(下)

凊風丶

2022-07-31

  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方法时实际上是触发这个组件挂载更新方法

写回答

1回答

ustbhuangyi

2022-08-03

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


2
1
凊風丶
谢谢老师
2022-08-04
共1条回复

Vue.js 源码深入解析 深入理解Vue实现原理

全方位讲解 Vue.js 源码,进阶高级工程师

4984 学习 · 1037 问题

查看课程