MVC模型与MVVM模型的区别?
MVC模型与MVVM模型的区别
MVC模型:
MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑。MVC被独特的发展起来用于映射传统的输入、处理和输出功能在一个逻辑的图形化用户界面的结构中。
- M:model 模型层(模型层接受改变状态最终发送给视图层展现)
- V:view 视图层(传递用户交互的指令给控制层)
- C:controller 控制层(控制层实现相应的逻辑代码后返回给模型层)
MVC设计模型的一般理解三者都相互联系,视图层和模型层存在直接关系,模型层的数据由视图层来体现出来,如果模型层发生改变,意味着视图层也会发生相应的变化,而三者之间的关系实际也更像,模型层与视图层是通过控制层来进行联系。
MVC模式的优缺点:
- 优点:
1. 高内聚低耦合
2. 重用性高
3. 可维护性高
4. 有利于软件优化
5. 部署快,生命周期成本低 - 缺点:
1. 增加系统结构和实现的复杂性
2. 视图对模型数据的低效率访问,未变化数据重复访问
3. 不适合小、中型应用程序
4. 没有明确的定义
MVVM设计模式
MVVM是Model-View-ViewModel的简写。即模型-视图-视图模型。【模型】指的是后端传递的数据。【视图】指的是所看到的页面。【视图模型】mvvm模式的核心,它是连接view和model的桥梁。
- M:Model 模型层
- V:View 视图层
- VM:ViewModel 视图模型层
MVVM主要通过模型层的默认数据来在视图层中显示,在通过在视图层中修改数据来改变模型层中的数据,从而实现视图层中的变化。当从模型层转化为视图层时,通过后台数据的转化在视图层中显出,通过数据绑定,当从视图层转化为模型层时,由页面改变后台的数据,通过dom事件监听。两者相互实现,就是数据的双向绑定。
注意:在MVVM模式中,视图层和模型层不能直接联系,两者通过VM来进行关联,当数据发生改变,VM进行监听,然后通知视图,反之,通知数据做改变。
MVVM模式的优点:
MVVM解决了MVC中大量的DOM操作使得页面渲染性能降低,加载速度变慢,用户体验差,以及当model层发生改变时,开发者需要主动更新页面的问题。