MVC的全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,是一种软件设计典范。它是用一种业务逻辑、数据与界面显示分离的方法来组织代码,将众多的业务逻辑聚集到一个部件里面,在需要改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑,达到减少编码的时间。
MVC开始是存在于桌面程序中的,M是指业务模型,V是指用户界面,C则是控制器
M:Model,模型。完成具体的业务操作,就是对数据的抽象,数据的封装。如:查询数据库,封装对象
V:view视图,就是UI表现层,提供与终端用户的交互
C:Controller控制器 获取view的请求,调用模型讲数据交给视图进行展示
优缺点
优点:1,耦合性低,方便维护,可以利于分工协作
2,重用性高
3,部署快,生命周期成本低
4,可维护性高
缺点:
1,使得项目架构变得复杂,对开发人员要求高
2,调试困难
3,不适合小型,中等规模的应用程序
4,视图与控制器间过于紧密的连接,并且降低了视图对数据模型的访问
MVVM模式
Model-View-ViewModel (MVVM) 模式有助于将应用程序的业务和呈现逻辑与其用户界面 (UI) 分开。 在应用程序逻辑和 UI 之间保持干净分离有助于解决许多开发问题,并使应用程序更易于测试、维护和改进。 它还可以极大地提高代码重用机会,并允许开发人员和 UI 设计人员在开发应用各自的部分时更轻松地进行协作。
MVVM 模式中有三个核心组件:模型、视图和视图模型。 每个服务都有不同的用途。
View负责前端展示,与ViewModel进行数据和命令的交互。
ViewModel,负责前端视图业务级别的逻辑结构组织,并将其反馈给前端。
Model,主要负责数据实体的结构处理,与ViewModel进行交互
在vue中
Model就是数据模型也指数据层 可以是我们固定死的数据,也可以是来自服务器请求来的数据
View就是页面DOM也指视图层 主要就是向用户展示信息
ViewModel在vue中就是指vue实例也指数据模型层 充当View和Model之间通信的桥梁
1,M:模型(Model):对应data中的数据
2,V:视图(View):模板(页面结构)
3,VM:视图模型(ViewModel):Vue实例对象
MVVM采用双向数据绑定,view中数据变化将自动反映到viewmodel上,反之,model中数据变化也将会自动展示在页面上。把Model和View关联起来的就是ViewModel。ViewModel负责把Model的数据同步到View显示出来,还负责把View的修改同步回Model。