vue数据双向绑定原理 Object.defineProperty()
双向绑定原理是通过数据劫持结合发布者-订阅模式的方式实现的
步骤
1.首先需要实现一个监听器Observer,来监听所有的属性,如果属性有改动的话,会通知订阅者
2.实现一个订阅者Watcher,看是不是需要更新,每一个watcher都绑定一个更新函数,watcher根据属性的变化执行相应的函数,从而更新视图,其中有一个消息订阅器dep()专门收集这些订阅者
3.实现一个解析器Compile,对每一个节点元素进行一个扫描和解析将一些相关指令(-modal, v-on)对应初始化一个订阅者Watcher,并替换模板数据或者绑定相应的函数,展示在页面上