MVC 和 MVVM 简单理解

274 阅读2分钟

MVC —— Model View Controller

      image.png

MVC模式的基本思想是数据显示处理相分离。

模型(Model)负责数据管理,视图(View)负责数据显示,控制器(Controller)负责业务逻辑和响应策略。

简单理解:

  • Model:后端传递的数据,响应数据请求(经常来自View)和更新状态的指令(经常来自Controller)。
  • View:用户所看到的页面 。
  • Controller:页面业务逻辑 。

MVC是 单向通信 。即View和Model必须通过Controller来承上启下。

关于MVC 中各个模块的交互,查阅了很多资料,都没有定论,以下是借用阮一峰博客的图示。www.ruanyifeng.com/blog/2015/0…

      image.png

  1. View 传送指令到 Controller
  2. Controller 完成业务逻辑后,要求 Model 改变状态
  3. Model 将新的数据发送到 View,用户得到反馈

使用MVC的目的就是将M和V的代码分离,Controller就是用来解耦View和Model的。

MVVM —— Model View ViewModel

MVVM是将MVC中的View分成了MVVM模式。MVC是后端的分层开发概念,MVVM是前端视图层的分层开发思想,主要是把每个页面分成了Model、View、ViewModel。其中VM是MVVM思想的核心,因为VM是M和V之间的调度者,同时提供了数据的双向绑定

在MVVM中是不允许数据和视图直接通信的,只能通过ViewModel来通信。

       image.png

简单理解:

  • Model:数据模型,每个页面中的数据
  • View:每个页面中的HTML结构。
  • ViewModel:视图模型,M和V之间的调度者,提供数据的双向绑定

在Vue中,ViewModel本质上就是Vue实例。 因为数据库结构往往是不能直接跟界面控件一一对应上的,所以需要再定义一个数据对象专门对应view上的控件。而ViewModel的职责就是把model对象封装成可以显示和接受输入的界面数据对象。

  image.png