MVC 架构模式图(经典版)前端
注:实际上,Model和View永远不能相互通讯,只能经过Controller传递;上图只是MVC模式的经典图。vue
MVC通常流程:
用户操做->View(负责接收用户的输入操做)->Controller(业务逻辑处理)->Model(数据持久化)->View(将结果反馈给View),单向通讯。后端
各模块功能:
视图(View):用户界面。(传送指令到 Controller)
控制器(Controller):业务逻辑 (完成业务逻辑后,要求 Model 改变状态)前端框架
模型(Model):数据保存、数据持久化。(将新的数据发送到 View,用户获得反馈)网络
缺点:
1.Controller逻辑复杂,难以维护。
2.Controller 和 View 紧耦合,没法测试。架构
特色:mvc
各模块功能:
Model【模型】:指的是后端传递的数据。
View【视图】:指的是所看到的页面。
ViewModel【视图模型】:mvvm模式的核心,它是链接view和model的桥梁。
ViewModel 负责:
1.校验用户输入
2.网络请求
3.展现层的逻辑,好比格式化字符串
4.其余不能放入 Model,与 View 无关的逻辑
做用:
一、将【模型】转化成【视图】,即将后端传递的数据转化成所看到的页面。实现的方式是:数据绑定。
二、将【视图】转化成【模型】,即将所看到的页面转化成后端的数据。实现的方式是:DOM 事件监听。
这两个转化的实现过程,咱们称之为数据的双向绑定框架
详细流程图:
mvvm
注:
1.视图和模型是不能直接通讯的。
2.与MVC相比,把原来View和Controller层的业务逻辑和页面逻辑等剥离出来放到ViewModel层。测试
在vue前端框架中,MVVM的应用: ViewModel一般要实现一个observer观察者,当数据发生变化,ViewModel可以监听到数据的这种变化,而后通知到对应的视图作自动更新;而当用户操做视图,ViewModel也能监听到视图的变化,而后通知数据作改动,这实际上就实现了数据的双向绑定。而且MVVM中的View 和 ViewModel能够互相通讯