MVVM (Model-View-ViewModel)
是一种用于把数据和UI分离的设计模式。
前一篇已经完成了单项model到view的单向数据更新,今天来继续完善代码,实现数据从view到model的更新,以及事件绑定的部分。
思路
view到model的更新:
- 首先, 在view中增加一个input,并添加
v-model="job"
指令 - 然后在Complie解析模板的时候,如果是节点,则判断节点属性的key,去匹配v-model指令
- 匹配到指令后,添加v-model对应的key的观察者,完成绑定
事件绑定:在Compile解析模板的时候,如果是节点,则去判断节点属性的key是否以v-on开头,如果是则为节点绑定v-on后面的事件类型,事件回调函数为v-on开头的属性的值, 记得在初始化的时候配置methods,并绑定this为MVVM
总结
很粗糙,细节问题很多,只是模拟了mvvm实现的基本思路, demo中很多细节没有考虑,比如事件委托绑定、更新节点的粒度等,多读源码继续提升。