传统的前端开发用的是MVP设计模式,代码分为三部分,即数据层(Model)、呈现层/控制层(Presenter)、视图层(View)前端
例以下方的一个jQuery的案例ajax
这里的M层比较弱,由于没有用ajax获取远程数据设计模式
V层能够理解成HTML结构,用来负责页面的显示内容框架
P层理解成jQuery代码,用来响应图层的指令,处理业务逻辑,是三层中最核心的一层,而业务逻辑也是View和Model的中转站(参考最开始的示意图)设计
可是这种设计模式的问题在,大多时候的代码都是在操做DOMblog
Vue框架用的就是MVVM设计模式,以下图开发
其中的M层负责存储数据,视图层V负责显示数据,中间的ViewModel层为Vue自带的一层im
编写代码时,重点在于模型层Model和视图层View,只要固定写好View层,经过M层数据的改变,VM层自动改变,而不须要关注VM具体是如何实现的(其实是用了ES5里的Object.defindeProperties和虚拟DOM)数据
这种设计模式的重点就在模型层Modelimg