1.单向绑定(v-bind):数据只能从data流向页面。
2.双向绑定(v-model):数据不仅能从data流向页面,还可以从页面流向data。
通过Observer
把数据劫持(Object.defineProperty()
) 、加入到订阅器(Dep
) 订阅器收集订阅者(Watcher
)、视图通过编译(Compile
)、解析指令(Directive
)等一些列操作收集给订阅者 、最后通过触发数据变化update
通知所有订阅者完成数据驱动
1.实现一个监听器Observer,用来劫持并监听所有属性,如果有变动的,就通知订阅者。
2.实现一个订阅者Watcher,可以收到属性的变化通知并执行相应的函数,从而更新视图。
3.实现一个解析器Compile,可以扫描和解析每个节点的相关指令,并根据初始化模板数据以及初始化相应的订阅器。