一篇读懂什么是MVVM?MVVM优缺点?

一篇读懂什么是MVVM?MVVM优缺点?

MVVM是什么?

MVVM 模式,顾名思义即 Model-View-ViewModel 模式。它萌芽于2005年微软推出的基于 Windows 的⽤户界⾯框架 WPF ,前端最早的 MVVM 框架 knockout 在2010年发布。

Model 层: 对应数据层的域模型,它主要做域模型的同步。通过 Ajax/fetch 等 API 完成客户端和服务端业务 Model 的同 步。在层间关系⾥,它主要⽤于抽象出 ViewModel 中视图的 Model。

View 层:作为视图模板存在,在 MVVM ⾥,整个 View 是⼀个动态模板。除了定义结构、布局外,它展示的是 ViewModel 层的数据和状态。View 层不负责处理状态,View 层做的是 数据绑定的声明、 指令的声明、 事件绑定的声明。

ViewModel 层:把 View 需要的层数据暴露,并对 View 层的 数据绑定声明、 指令声明、 事件绑定声明 负责,也就是处 理 View 层的具体业务逻辑。ViewModel 底层会做好绑定属性的监听。当 ViewModel 中数据变化,View 层会得到更 新;⽽当 View 中声明了数据的双向绑定(通常是表单元素),框架也会监听 View 层(表单)值的变化。⼀旦值变 化,View 层绑定的 ViewModel 中的数据也会得到⾃动更新。

MVVM的优缺点?

优点:

1. 分离视图(View)和模型(Model),降低代码耦合,提⾼视图或者逻辑的重⽤性: ⽐如视图(View)可以独⽴于 Model变化和修改,⼀个ViewModel可以绑定不同的"View"上,当View变化的时候Model不可以不变,当Model变化 的时候View也可以不变。你可以把⼀些视图逻辑放在⼀个ViewModel⾥⾯,让很多view重⽤这段视图逻辑。

2. 提⾼可测试性: ViewModel的存在可以帮助开发者更好地编写测试代码。

3. ⾃动更新dom: 利⽤双向绑定,数据更新后视图⾃动更新,让开发者从繁琐的⼿动dom中解放。

缺点:

1. Bug很难被调试: 因为使⽤双向绑定的模式,当你看到界⾯异常了,有可能是你View的代码有Bug,也可能是Model 的代码有问题。数据绑定使得⼀个位置的Bug被快速传递到别的位置,要定位原始出问题的地⽅就变得不那么容易 了。另外,数据绑定的声明是指令式地写在View的模版当中的,这些内容是没办法去打断点debug的。

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

3. 对于⼤型的图形应⽤程序,视图状态较多,ViewModel的构建和维护的成本都会⽐较⾼。

相关推荐

蛋糕尺寸終極指南:一篇搞懂人數、公分、場合,選購零失誤!
《战地4》游戏购买和下载教程
365bet体育投注地

《战地4》游戏购买和下载教程

📅 07-11 👁️ 7001
如何挑选和盘玩金刚菩提,最全攻略告诉你!
365best官网

如何挑选和盘玩金刚菩提,最全攻略告诉你!

📅 08-06 👁️ 9695
深读拉美|巴西能确保奥运会的安全吗?
365best官网

深读拉美|巴西能确保奥运会的安全吗?

📅 07-25 👁️ 2370
瓜子脸剪什么发型好看,瓜子脸必剪5款气质发型,轻松打造女神氛围感
儿童用品
365best官网

儿童用品

📅 08-09 👁️ 443