一、MVC
1、MVC定义
MVC是一个设计模式,它强制性的使应用程序的输入、处理和输出分开。MVC应用程序被分成三个核心部件:模型、视图、控制器,它们各自处理自己的任务。
MVC过程如下:用户操作> View (负责接受用户的输入操作)>Controller(业务逻辑处理)>Model(数据持久化)>View(将结果通过View反馈给用户)。
1.视图V: 视图是用户看到并与之交互的界面。
2. 模型M:Model(数据模型),用于存放数据。
3. 控制器C:Controller负责将Model的数据用View显示出来,可直接与Model和View进行通信,而View不能与Controller直接通信。
2、MVC框架的优点
1.开发人员可以只关注整个结构中的其中某一层;
2.可以很容易的用新的实现来替换原有层次的实现;
3.可以降低层与层之间的依赖;
4.有利于标准化;
5.利于各层逻辑的复用。
3、MVC框架的缺点
1.所有业务逻辑都在Controller里操作,逻辑复杂且不利于维护。
2.大量的DOM 操作使页面渲染性能降低,加载速度变慢,影响用户体验。
3.视图对模型数据的低效率访问。当Model频繁发生变化,需要主动更新到View 不仅繁琐,而且很难维护复杂多变的数据状态。
二、MVVM
1、MVVM定义
MVVM是Model-View-ViewModel的简写,本质上是MVC的改进版。其核心是提供对View和Model的双向数据绑定,View和Model之间没有直接的联系,而是通过ViewModel进行交互。
1.M(odel)层:模型,定义数据结构。
2.C(ontroller)层:实现业务逻辑,数据的增删改查。在MVVM模式中一般把C层算在M层中。
3.ViewModel :创建关联,将Model和View绑定起来。当用户操作 View(视图),ViewModel感知到变化,然后通知Model发生相应改变;反之当Model(数据)发生改变,ViewModel也能感知到变化,使View作出相应更新。这个一来一回的过程就是双向绑定。