MVC:control负责调度,model和view没有直接联系(分层,职责明确、可重用但业务逻辑无法重用)
1.view(负责跟用户交互的页面)
2.control(接受请求->调用模型->根据结果派发页面并经过模型处理返回相应的数据)
3.model(完成业务逻辑)
MVVC:把control改变成viewModel(绑定view和v-model达成view与数据的强耦合)
view的变化会自动更新到viewModel,viewModel的变化也会自动同步到view上显示,通过数据来显示视图层【操作数据即操作DOM】
MVVC的优点:
低耦合:view可以独立于model变化和修改
可重用性:可以把一些视图逻辑放在一个viewModel里面,让很多view重用这段视图逻辑(一个viewModel也可以绑定到不同的view上)【动态模板】
独立开发:开发人员可以专注于业务逻辑和数据的开发,设计人员可以专注于页面的设计【关注点分离】
MVC和MVVC的区别
MVC的control演变成MVVC的ViewModel
MVVC通过数据来显示视图而不是节点操作
MVVC主要解决了MVC中大量的dom操作使得页面渲染性能降低加载速度变慢,影响用户体验和当 Model 频繁发生变化,开发者需要主动更新到View的问题
MVP中的P(presenter)可以相当于MVVM中的VM(view-model)