原理
本质上也是通过ReactiveEffect里面的scheduler去实现的,不同的是:
- 计算属性的scheduler里面是处理一些dirty缓存的操作
- watch里面的scheduler是处理watch的回掉函数的一些操作(优化等等)
内部逻辑
- 初始化:内部初始化一个ReactEffect实例,让watcher的第一个参数当成getter,然后把回调函数包装一层逻辑再当成schedular传入
- 依赖收集:首先让effect跑一次,这样getter里面的reactive对象会去收集刚刚新建的whatch的ReactEffect实例
- 执行: 当vue改变时