Open lhlGitHub opened 2 years ago
在拦截器(Object.defineProperty)里,在它的闭包中会有一个观察者(Dep)对象,这个对象用来存放被观察者(watcher)的实例。
并且拦截器注册 get 方法,该方法用来进行「依赖收集」。其实「依赖收集」的过程就是把 Watcher 实例存放到对应的 Dep 对象中去。
get 方法可以让当前的 Watcher 对象(Dep.target)存放到它的 subs 中(addSub)方法,在数据变化时,set 会调用 Dep 对象的 notify 方法通知它内部所有的 Wathcer 对象进行视图更新。
在拦截器(Object.defineProperty)里,在它的闭包中会有一个观察者(Dep)对象,这个对象用来存放被观察者(watcher)的实例。
并且拦截器注册 get 方法,该方法用来进行「依赖收集」。其实「依赖收集」的过程就是把 Watcher 实例存放到对应的 Dep 对象中去。
get 方法可以让当前的 Watcher 对象(Dep.target)存放到它的 subs 中(addSub)方法,在数据变化时,set 会调用 Dep 对象的 notify 方法通知它内部所有的 Wathcer 对象进行视图更新。