浅谈MVC、MVP、MVVM

313 阅读2分钟

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
优点:
  • 代码以层次分离,每一个层次只负责特定的功能,清晰度高,便于书写
  • 解耦,降低了层与层之间的依赖,代码更标准化
  • 可维护性高

缺点:

  • 视图与控制器间过于紧密连接

2.什么是MVP

MVP是Model、view、Presenter(翻译:节目主持人,演播员;推荐者;提出者;赠送者)的缩写,将Controller换成了Presenter,只不过是改变了通信的方式


  • 各个层级之间都变成了双向通信
  • View和Model之间不再发生通信,都是通过Presente去传递
  • View变得非常的非常的薄弱,只负责渲染试图
  • Presenter变的非常的重要和厚重,所有的逻辑处理都在此层

3.什么是MVVM?

MVVM是Model  View ViewModel的缩写,只不过是把Presenter换成了viewModel


  • 从图中可以看出,ViewModel其实在MVP中是在Presenter的位置,其实当vm层或者Model层发生数据变化的时候view就会发生渲染,相同的View层发生变化ViewModel也会变化,这就是数据的双向绑定,大大的减少了开发这进行Dom操作,大大提高了开发效率

总结:

个人觉得MVC -> MVP -> MVVM的演变,基本的意思大致是没有太大的变化,最终实现了一个数据的双向绑定,但是在整体的项目搭建和项目开发中,不断的优化的一个方向,比如在vue中数据双向绑定就体现的淋漓尽致,大大减少了DOM的操作,开发效率也高。


----你的赞就是我写文章的动力😘❤