前端MVC&MVP&MVVM

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

一、MVC

MVC的全称为Model View Controller

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

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

二、MVP

mvp的全称为Model-View-Presenter

- 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

基本上与MVP模式完全一致。唯一的区别是,它采用双向绑定(data-binding):View的变动,自动反映在 ViewModel,反之亦然。 例如:Angular、Ember。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

扫码关注云+社区

领取腾讯云代金券