MVX模式:
MVC模式:model + view + controller 数据模型,页面,控制器
最早出现在java中,一种业务逻辑,数据,界面显示分离的方法组织代码
优点:耦合性低,重用性高,生命周期成本低,部署快,可维护性高,有利于软件工程化管理。
缺点:用于模型和视图要严格的分离,这样也给调试应用程序带来了一定的困难,每个构件中使用之前都需要经过彻底的测试
MVP模式: model view presenter 数据层 ,视图层,发布层,它是mvc的一种演变
MVP 模式将 Controller 改名为 Presenter
View 与Model 不发生联系,都通过 Presenter 传递
View 非常薄,不部署任何业务逻辑,称为‘被动视图’(Passive View),即没有任何主动性面,Presenter 非常厚,所有逻辑都部署中那里,
MVVM模式:基于MVC的设计,大量的减少DOM的操作,简单,高效,
Model 代表了我们整个Webapp所需要的数据模型,Model含有大量的信息,但它并不具备任何行为逻辑,它只是数据,因而它不会影响到浏览器如何展示数据,
MVVM中View它具有主动性,因为它包括一些数据绑定,事件和行为,这些都会直接影响到的Model和ViewModel的,它不但负责保持View自身
MVVM分为Model、View、ViewModel三者。
- Model 代表数据模型,数据和业务逻辑都在Model层中定义;
- View 代表UI视图,负责数据的展示;
- ViewModel 负责监听 Model 中数据的改变并且控制视图的更新,处理用户交互操作;
Model 和 View 并无直接关联,而是通过 ViewModel 来进行联系的,Model 和 ViewModel 之间有着双向数据绑定的联系。因此当 Model 中的数据改变时会触发 View 层的刷新,View 中由于用户交互操作而改变的数据也会在 Model 中同步。
这种模式实现了 Model 和 View 的数据自动同步,因此开发者只需要专注对数据的维护操作即可,而不需要自己操作 dom。