1.什么是mvc?
MVC是Model View Controller的简写,Model数据管理层、View视图层、Controller业务逻辑控制层,是一种设计模式的典范,将数据管理层、视图层、业务逻辑层分离的代码组合的模式。
前端
- model数据管理,包含数据逻辑、数据请求、数据存储等功能。前端Model主要负责ajax请求或者一下本地存储
- view主要是负责用户的界面,前端view主要是渲染功能
- controller负责处理view的事件,并更新model里面的数据,也负责监听model的变化,并更新view,controller控制其余的多有流程

- Controller截获用户发出的请求
- Controller调用Model完成状态的读写操做
- Controller把数据传递给View
- View渲染最终结果并呈献给用户
在Web MVC中,Controller变成了中继者,主要工做是协调Model和View
优势:
- 代码以层次分离,每个层次只负责特定的功能,清晰度高,便于书写
- 解耦,下降了层与层之间的依赖,代码更标准化
- 可维护性高
缺点:vue
2.什么是MVPajax
MVP是Model、view、Presenter(翻译:节目主持人,演播员;推荐者;提出者;赠送者)的缩写,将Controller换成了Presenter,只不过是改变了通讯的方式设计模式

- 各个层级之间都变成了双向通讯
- View和Model之间再也不发生通讯,都是经过Presente去传递
- View变得很是的很是的薄弱,只负责渲染试图
- Presenter变的很是的重要和厚重,全部的逻辑处理都在此层
3.什么是MVVM?mvc
MVVM是Model View ViewModel的缩写,只不过是把Presenter换成了viewModel优化

- 从图中能够看出,ViewModel其实在MVP中是在Presenter的位置,其实当vm层或者Model层发生数据变化的时候view就会发生渲染,相同的View层发生变化ViewModel也会变化,这就是数据的双向绑定,大大的减小了开发这进行Dom操做,大大提升了开发效率
总结:翻译
我的以为MVC -> MVP -> MVVM的演变,基本的意思大体是没有太大的变化,最终实现了一个数据的双向绑定,可是在总体的项目搭建和项目开发中,不断的优化的一个方向,好比在vue中数据双向绑定就体现的淋漓尽致,大大减小了DOM的操做,开发效率也高。设计
----你的赞就是我写文章的动力😘❤双向绑定