MVVM和MVC的区别,以及MVVM的缺点

MVC和MVVM都是一种设计思想。
MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑。MVC是单向通信,也就是view和model必须通过controller来承上启下。MVC和MVVM的区别不是VM完全取代了C,ViewModel存在的目的在于抽离controller中展示的业务逻辑,而不是替代Controller,其它视图操作业务等还是应该放在controller中实现,也就是说MVVM实现的业务逻辑组件的重用。
MVVM是Model-view-viewModel的简写,即模型-视图-视图模型。模型指的是后端传递的数据;视图指的是所看到的页面,viewModel视图模型是mvvm模式的核心,他是连接view和model的桥梁。它有两个方向:一是将【模型】转化成【视图】,即将后端传递的数据转化成所看到的页面。实现的方式是:数据绑定。二是将【视图】转化成【模型】,及所看到的页面转化成后端的数据。实现的方式是DOM事件监听。这两个方向都实现的,我们称之为数据的双向绑定。利用MVVM可以使我们的代码更加专注于处理业务逻辑而不去关心DOM操作,目前著名的MVVM框架有VUE,AVALON,angular等。
MVVM设计模式的优点:
1.双向绑定技术,当Model变化时,View-Model会自动更新,View也会自动变化,很好的做到数据的一致性。
2.由于控制器的功能大都移动到View上处理,大大的对控制器进行瘦身
3.可以对view或viewController的数据处理部分抽象出来一个函数出来model.这样他们专职页面布局和页面跳转,他们必然更一步简化。
mvvm设计模式的缺点:
数据绑定也使得Bug很难被调试,比如你看到页面异常了,有可能是你的view的代码有bug也可能是你的model代码有问题,数据绑定使得一个位置的Bug被快速传递到别的位置,找到错误的地方不太容易。数据双向绑定不利于代码的重用。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值