https://juejin.im/post/5d421bcf6fb9a06af23853f1
思路: 1.实现一个监听器Observer,用来劫持并监听所有属性,如果有变动的,就通知订阅器。
2.实现一个订阅器Dep,将劫持的属性一一对应,并且收集所劫持的属性相关联的watcher,以便于更新数据通知watcher
2.实现一个订阅者Watcher,可以收到属性的变化通知并执行相应的更新函数,从而更新视图。
3.实现一个解析器Compile,可以扫描和解析所有层次节点的相关指令或者表达式,并根据初始化模板数据以及初始化相应的订阅器。
vm.name= "abc" ===> data中的name 属性值变化 ===> name 的set() 调用 ===> dep ===> 相关的watcher ===> callback() ===> updater
网友评论