前端MVVM、MVC、MVP

在学习前端过程中遇到了MVVM/MVC/MVP三种架构模式,那么它们究竟有什么区别呢?

MVC

在JAVA的学习过程中就一直被渗透的MVC架构模式简单来说就是Model(数据保存的位置),View(视图),Controller(控制数据)三者的合作。在前端,这个模式更容易理解,就是数据->业务逻辑->用户界面显示->数据的过程。它们之间的逻辑是单向可循环的。

第一种可能用户的操作产生数据,数据通过逻辑录入数据库,数据库中的数据反作用于用户。

第二种可能是用户操作产生判断,判断影响数据走向,数据走向影响页面变化。

这都是MVC模式的应用场景。

MVP

在MVC的基础上改变 Controller 为 Presenter。View与Model之间的依赖被打破, Presenter变成了一个核心操作员,它接收View视图传来的操作,通过View的接口改变View的操作;同时也监听Model模块传来的数据,令其产生变化。

MVVM

在MVP模式上的改良就是让操作员 Presenter变成ViewModel。唯一的区别是,它采用双向绑定(当ViewModel对进行Model更新的时候,Binder会自动把数据更新到View上去,当用户对View进行操作,Binder也会自动把数据更新到Model上去。)。

以前Presenter负责的View和Model同步不再手动地进行操作,而是交由框架所提供的Binder进行负责。只需要告诉Binder,View显示的数据对应的是Model哪一部分即可。

这三个架构模型在不断改良的过程中,逐渐将依赖程度降低,逐渐将手动化步骤减少。简化了测试,提高了可维护性,模块之间的影响程度越来越低。