MVVM和MVP模式

MVP模式


传达我们的代码需要三层
Model层 模型层
View层 视图层,一般指页面指示,
Presenter层 控制器,视图层发生一个事件交给控制器,控制器要不获取数据,要不然就直接去操作DOM,根据视图发送的事件,相当于View和Model的中转站。
JQ就属于是MVP模式,大部分都是在操作DOM。

MVVM模式

VUE官方文档的MVVM模式的设计图

先看和MVP模式的区别:也有model层和view层,但是没有Presenter层,取而代之是v-model这层。这层是VUE底层。我们一般不需要关注V-model这层,我们只需要关注V和M层,编码的重点一般在视图层和模型层。这就有一个好处,当我们在使用VUE开发的时候,只需要去关注M层的开发就可以了,对数据进行一个修改,VM底层会自动帮实现页面,同时页面发生变化,M层也会自动跟着变
所以在VUE开发的时候,重点放在Model就可以啦~

有人可能会关注vm是怎么实现的,其实用到了ES5中的比较核心的API 叫做Object.defineProperty,同时也引用了虚拟DOM的机制。通过这两种,VUE实现了这种架构体系。有兴趣的同学可以去了解下~

你可能感兴趣的:(MVVM和MVP模式)