浅谈MVC、MVP、MVVM

1.什么是mvc?

MVC是Model View Controller的简写,Model数据管理层、View视图层、Controller业务逻辑控制层,是一种设计模式的典范,将数据管理层、视图层、业务逻辑层分离的代码组合的模式。前端

  • model数据管理,包含数据逻辑、数据请求、数据存储等功能。前端Model主要负责ajax请求或者一下本地存储
  • view主要是负责用户的界面,前端view主要是渲染功能
  • controller负责处理view的事件,并更新model里面的数据,也负责监听model的变化,并更新view,controller控制其余的多有流程


  1. Controller截获用户发出的请求
  2. Controller调用Model完成状态的读写操做
  3. Controller把数据传递给View
  4. 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的操做,开发效率也高。设计


----你的赞就是我写文章的动力😘❤双向绑定

相关文章
相关标签/搜索