/copyVue

学习与抄袭名叫vue的一款MVVM框架

Primary LanguageJavaScript

copyVue

mvvm

  • 实现一个指令解析器 Compile
  • 实现一个数据监听器 Observer
  • 实现一个watcher去更新视图
  • 实现一个proxy

Vue 是采用数据劫持配合发布者-订阅者模式的方法,通过 Object.definerProperty() 来劫持各个属性的setter和getter, 在数据变动时,发布消息给依赖收集器,去通知观察者,做出对应的回调函数,然后更新视图

MVVM 作为绑定的入口,整合了Observer(劫持并监听各个属性),Compile 和 Watcher三者 通过Observer 监听model数据变化,通过Compile来解析编译模板指令,最终利用Watcher搭起了 Observer和Compile之间的通信桥梁,达到数据变化 => 视图更新;视图交互变化 => 数据model变更的双向绑定效果