# FE Design

# MVVM

M: 模型数据

V: 视图

VM: 为可以在UI上执行的数据和操作的表示。它不是UI的表示,也不是数据Modal(模型),而是一个用于保存用户正在使用且尚未保存数据的层。

MVVM的一个缺点是在ViewModel和View之间需要进行解释,这会带来性能成本。解释的复杂性也是可以变化的:他可以像复制数据一样简单,或是像View所看到的那种形式进行操作一样复杂。MVC没有这种问题,因为整个Model都是可用的,这种操作是可以避免的。

优势

  1. 关注点分离
  2. MVVM使得UI和为UI提供驱动的行为模块的并行开发变得容易
  3. MVVM使得View抽象化,从而减少代码背后所需的业务逻辑量
  4. ViewModel在单元测试中的使用比在事件驱动代码中的使用更加容易
  5. 不需要考虑UI自动化和交互就可以测试ViewModel

不足

  1. 对于简单的UI来说,使用MVVM有些大材小用
  2. 数据绑定可以是声明式的,使用也很方便,但比命令式的代码更难调试,在命令式的代码中,我们只需要设置断点
  3. 大型应用程序中的数据绑定可以产生大量的标记。我们不想看到的情况是:绑定比被绑定的对象还要繁重。
  4. 在大型应用程序中,预先设计ViewModel可能更加困难
陕ICP备20004732号-3