成都

点击搜索

发布

浅谈 MVVM 设计模式优缺点

区域:
成都 > 高新区 > 高新区周边
类别:
网站前端开发培训
地址:
成都市高新区府城大道西段399号天府新谷1号楼6F
首先说一说MVVM的由来,相信大家对MVC都不陌生,MVC 是开发客户端经典的设计模式,但是 MVC 有让人无法忽视的严重问题。在通常的开发中,除了简单的 Model、View 以外的所有部分都被放在了 Controller 里面。Controller 负责显示界面、响应用户的操作、网络请求以及与 Model 交互。随着业务逻辑的增加,controller的处理逻辑会变得越来越复杂,controller也就慢慢的变得越来越胖,这就造成了Controller逻辑复杂,难以维护。为了更好地管理代码,更方便地扩展业务,为必要为controller,于是MVVM便呼之欲出.

MVVM:是 Model-View-ViewModel简写

M:对应于MVC的M
V:对应于MVC的V

VM:viewModel,是把MVC里的controller的数据的加载、加工功能分离出来

MVVM 是 Web 前端一种非常流行的开发模式,利用 MVVM 可以使我们的代码更专注于处理业务逻辑而不是去关心 DOM 操作。目前的 MVVM 框架有 vue, avalon, angular 等,这些框架各有千秋,但是实现的思想大致上是相同的:数据绑定 和 视图刷新。跟MVC一样,主要目的是分离视图(View)和模型(Model)。View可以独立于Model变化和修改,一个ViewModel可以绑定到不同的"View"上,当View变化的时候Model可以不变,当Model变化的时候View也可以不变。

在MVVM中,数据是核心,由于VIewModel与View之间的双向绑定,操作了ViewModel中的数据,就会同步到DOM,我们透过DOM事件监控用户对DOM的改动,也会同步到ViewModel。

MVVM设计模式的优点

1.双向绑定技术,当Model变化时,View-Model会自动更新,View也会自动变化。很好做到数据的一致性,不用担心,在模块的这一块数据是这个值,在另一块就是另一个值了。所以 MVVM模式有些时候又被称作:model-view-binder模式。

2.View的功能进一步的强化,具有控制的部分功能,若想无限增强它的功能,甚至控制器的全部功几乎都可以迁移到各个View上(不过这样不可取,那样View干了不属于它职责范围的事情)。View可以像控制器一样具有自己的View-Model.

3.由于控制器的功能大都移动到View上处理,大大的对控制器进行了。不用再为看到庞大的控制器逻辑而发愁了。

4.可以对View或ViewController的数据处理部分抽象出来一个函数处理model。这样它们专职页面布局和页面跳转,它们必然更一步的简化。

MVVM设计模式的缺点

1.数据绑定使得 Bug 很难被调试。你看到界面异常了,有可能是你 View 的代码有 Bug,也可能是 Model 的代码有问题。数据绑定使得一个位置的 Bug 被快速传递到别的位置,要定 位原始出问题的地方就变得不那么容易了。

2.一个大的模块中model也会很大,虽然使用方便了也很容易保证了数据的一致性,当时长期持有,不释放内存就造成了花费更多的内存。

3.数据双向绑定不利于代码重用。客户端开发常用的重用是View,但是数据双向绑定技术,让你在一个View都绑定了一个model,不同模块的model都不同。那就不能简单重用View了。

本文章由源码时代H5前端学科讲师原创!

转载须注明出处(http://www.its***)!感谢大家的配合!
相关信息
武侯-武侯周边
2022-12-09
武侯-武侯周边
2022-12-08
武侯-武侯周边
2022-12-07
双流-东升
2022-12-07
武侯-武侯周边
2022-12-06
武侯-武侯周边
2022-12-05
查看更多成都电脑/网络信息

免责声明:此信息系发布者(UID:306112)自行发布,本站是服务平台,仅提供信息存储空间服务,该信息内容的真实性及合法性由该发布者完全负责。

© lieju.com 联系我们