MVC和MVVM的区别?
1.MVC
1.概念:
M是指业务模型,V是指用户界面,C则是控制器。
M即model模型,数据层,负责数据的处理和获取的数据接口层。
V即View视图,视图层,是指用户看到的并且与之交互的界面。比如由html元素组成的网页界面,或者软件的客户端界面。
C即controller控制器,控制层,它是Model 和 View 之间的胶水或者说是中间人。
模型(model) 视图(view) 控制器(controller)
图示:
应用场景:
主要用于中大型项目的分层开发。
运作流程:
Model 和 View 是完全隔离的,由 Controller 作为中间人来负责二者的交互
同时三者是完全独立分开的
这样可以保证 M 和 V 的可测试性和复用性以及维护性,但是一般由于 C 都是为特别的应用场景下的 M 和 V 做中间者,所以很难复用。
2.好处:
耦合性低
重用性高
部署快,生命周期成本低。
可维护性高。
3. 存在的问题
不适合小型,中等规模的应用程序。
视图与控制器间的过于紧密的连接并且降低了视图对模型数据的访问。
2.MVVM
1. 概念:
Model ----> 每个页面单独数据
View ----> 每个页面中的HTML结构
Model ---- View ---- VM(ViewModel)
2. 好处
数据驱动
VM提供数据的双向绑定