MVC 在维基百科中是这么介绍的。
MVC 模式(Model–view–controller)是软件工程中的一种软件架构模式,把软件系统分为三个基本部分:模型(Model)、视图(View)和控制器(Controller)。
MVC 模式最早由 Trygve Reenskaug 在1978年提出,是施乐帕罗奥多研究中心(Xerox PARC)在20世纪80年代为程序语言 Smalltalk 发明的一种软件架构。MVC 模式的目的是实现一种动态的程序设计,使后续对程序的修改和扩展简化,并且使程序某一部分的重复利用成为可能。除此之外,此模式通过对复杂度的简化,使程序结构更加直观。软件系统通过对自身基本部分分离的同时也赋予了各个基本部分应有的功能。专业人员可以通过自身的专长分组:
- 控制器(Controller)- 负责转发请求,对请求进行处理。
- 视图(View) - 界面设计人员进行图形界面设计。
- 模型(Model) - 程序员编写程序应有的功能(实现算法等等)、数据库专家进行数据管理和数据库设计(可以实现具体的功能)。
在前端的学习中,MVC 我个人认为是一种代码编写习惯,是一种思维方式,将一个解决方案分为三块,即在哪里操作(view)、该做什么(controller)、数据的操作(model)。
他们之间的关系可用下图表示:

用户直接接触的是View,用户操作View时,Controller会接受到用户的操作行为,并对其做出反应。此时Controller会调用Model,Model会根据Controller的指令与服务端发生数据交换,然后将结果返回给Controller,然后由Controller去更新View,View将用户操作的结果呈现给用户。