MVVM的优点
- 实现了Model和View的分离,降低了代码耦合、提⾼了逻辑或视图的复⽤性。
- 实现了⾃动更新DOM:利⽤数据双向绑定,数据更新后视图⾃动更新,让开发者从繁琐的⼿动操作DOM中解放出来。
- 提⾼了可测试性:ViewModel的存在可以帮助开发者更好地编写测试代码。
MVVM的缺点
- Bug难被调试:因为使⽤了数据双向绑定的模式,当我们看到界⾯发生异常时,有可能是Model代码的问题,也可能是View的代码产生的Bug。数据双向绑定使得⼀个位置的Bug被快速传递到别的位置,要定位原始出问题的地⽅就变得不那么容易。
- 在⼀个⼤的模块中Model也会很⼤,虽然使⽤上来说⽅便了,很容易保证了数据的⼀致性,但如果⻓期持有不释放内存,就会造成更多的内存消耗。
- 对于⼤型的图形应⽤程序,视图状态较多,ViewModel的构建和维护成本都会⽐较⾼。