observer | Dep | watcher |
---|---|---|
将data中的值进行defineProperty监视,遇到对象则递归调用,直到所有都被defineProperty。 | 是用来装入watcher的队列。由Observer主动触发。 | 在渲染dom时实例化watcher |
在get时,将Dep.target放入dep队列中。在set时,通知dep进行更新。 | 每一个dep实例装着对应的watcher | 每完成一个watcher的实例化后,将自身缓存在Dep.target上。watcher中的回调函数用来直接更新html节点。 |
observer
1.将data中的值进行defineProperty监视,遇到对象则递归调用,直到所有都被defineProperty。
2.在get时,将Dep.target放入dep队列中。在set时,通知dep进行更新。
Dep
是用来装入watcher的队列。由Observer主动触发。
watcher
1.在渲染dom时实例化watcher
2.每完成一个watcher的实例化后,将自身缓存在Dep.target上。
3.watcher中的回调函数用来直接更新html节点。
解析器
用来解析V-DOM、渲染真实dom并实例化watcher。
过程
1.首先html渲染时获得data的值如name时,调用一次observer