mvc和mvvm模式的理解与区别

1、从了解MVC开始

几乎所有的项目都在做这么一件事:将数据展示给用户看,并处理用户对界面的操作。
MVC的思想:一句话描述就是Controller负责将Model的数据用View显示出来,换句话说就是在Controller里面把Model的数据赋值给View,比如在Controller中写document.getElementById("box").innerHTML = data.title

M(模型)

Model(模型):是应用程序中用于处理应用程序数据逻辑的部分。通常模型对象负责在数据库中存取数据。

V(视图)

View(视图):是应用程序中处理数据显示的部分。通常视图是依据模型数据创建的。

C(控制器)

Controller(控制器):是应用程序中处理用户交互的部分。通常控制器负责从视图读取数据,控制用户输入,并向模型发送数据。


总的来说,View是负责页面的绘制、Model是负责数据的管理、而Controller是负责这俩者之间的交互,也就相当于协调者

2、现在再说说来MVVM

与我们之前分析过MVC工作模式一样,M是存取数据、V是数据的显示,那么VM呢?在MVC的时代项目的数据还是比较简单的,没有现在那么复杂。我们理所应当的,将“解析数据”这个问题就交给C来完成了,也就是类似document.getElementById("box").innerHTML = data.title
这种的操作。但是现在数据变的复杂了,如果继续将这些操作放到了Controller里面,那么Controller就将变得相当臃肿。还有相当重要的一点:Controller被设计出来并不是处理 数据解析

Controller的使命
  1. 管理自己的生命周期;
  2. 处理Controller之间的跳转;
  3. 实现Controller容器。

这里面根本没有“数据解析”这一项,所以显然,数据解析也不应该由Controller来完成。那么
MVC就需要升级了,在MVC的基础上新增了ViewModel,弱化了Controller的负担。所以MVVM就这样诞生了!

MVC和MVVM的区别
  1. MVC和MVVM的区别并不是VM完全取代了C,ViewModel存在目的在于抽离Controller中展示的业务逻辑,而不是替代Controller它还是存在,在其它视图操作业务等还是应该放在Controller中实现。也就是说MVVM实现的是业务逻辑组件的重用。
  2. MVVM通过数据来显示视图层而不是节点操作,VM通过数据双向绑定来实现的,而在像C那样通过DOM操作实现。
  3. MVVM解决了MVC中大量的DOM操作使页面渲染性能降低,加载速度变慢,影响用户体验
  4. MVVM的优势在于不用亲自操作DOM, 数据是响应式的, 一旦数据变化, 自动更新界面

以上就是我对mvc和mvvm的理解,如果文章由于我学识浅薄,导致您发现有严重谬误的地方,请一定在评论中指出,我会在第一时间修正我的文章,以避免误人子弟。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值