前端MVC&MVP&MVVM

“少壮不努力,长大干IT!”。公司项目重构终于进入尾声了,两个月快累成“狗”了。重构前端框架使用了MVVM+Node,从“铁器时代”直接进入“全栈时代”。下面是自己关于前端框架的肤浅认识。

一、MVC

MVC的全称为Model View Controller
前端MVC&MVP&MVVM_第1张图片
- Model(模型)是应用程序中用于处理应用程序数据逻辑的部分。通常模型对象负责在数据库中存取数据。
- View(视图)是应用程序中处理数据显示的部分。通常视图是依据模型数据创建的。
- Controller(控制器)是应用程序中处理用户交互的部分。通常控制器负责从视图读取数据,控制用户输入,并向模型发送数据。

所有通信都是单向的。
例如:Backbone。

二、MVP

mvp的全称为Model-View-Presenter
前端MVC&MVP&MVVM_第2张图片
- Model提供数据
- View负责显示
- Controller/Presenter负责逻辑的处理

MVP与MVC有着一个重大的区别:在MVP中View并不直接使用Model,它们之间的通信是通过Presenter (MVC中的Controller)来进行的,所有的交互都发生在Presenter内部,而在MVC中View会从直接Model中读取数据而不是通过 Controller。

各部分之间的通信,都是双向的;View 与 Model 不发生联系,都通过 Presenter 传递。
例如:Riot

三、MVVM

MVVM的全称为Model-View-ViewModel
前端MVC&MVP&MVVM_第3张图片
基本上与MVP模式完全一致。唯一的区别是,它采用双向绑定(data-binding):View的变动,自动反映在 ViewModel,反之亦然。
例如:Angular、Ember。

你可能感兴趣的:(mvc,前端框架,MVVM,mvp)