新年福利~~带你手把手撸mvvm,再也不怕面试被问倒了~~~

8,734 阅读1分钟
#多种方式实现MVVM,本章先讲解基于defineProperty来实现,也就是类似于实现vue的mvvm功能。本系列有3种实现方式,defineProperty(VUE),脏检查(angular),原生js实现(发布订阅者模式)

github地址  查看源码 https://github.com/honeydlp/mvvm.git

#vue.js 则是采用数据劫持结合发布者-订阅者模式的方式,通过`Object.defineProperty()`来劫持各个属性的`setter`,`getter`,在数据变动时发布消息给订阅者,触发相应的监听回调。

先看原理图,再结合代码


代码贴图了,今天用掘金code 总是显示在一行,所以截图了,抱歉哈,代码在github上

dom结构


MVVM调用


MVVM实现