MVVM 和 MVC 的区别

79 阅读1分钟

MVC(Model Controller View),MVVM(Model View ViewModel)是前端现在比较主流的架构,其中 Model是数据模型,Controller是控制器,View是视图,ViewModel是数据解析。 在MVC架构阶段中:

  • View 负责终端界面展示,它的设计应该可以展示任意数据,不应该只适配某一个 Model,否则不利于View层的拓展。
  • Model 负责处理数据,它的设计应该只是存粹的数据处理,不应该为了适配某个 View,在内部进行数据解析和封装,否则不利于Model层的扩展。
  • Controller 则负责维护两者之间数据传递,将 Model 处理完后的数据传递给 View 进行展示,维持数据的同步。

在 MVC 的架构设计中,我们会将很多的数据,业务处理都集中在 Controller ,导致 Controller 非常的臃肿,其实按照 MVC 架构设计中,Controller 只负责以下几点内容:

  • 管理自己的生命周期
  • 处理 Controller之间的跳转
  • 作为 View 的容器

结合上文内容不难发现,在MVC架构中并没有专门设计负责数据解析的阶段,所以在后来的开发者就提出了 ViewModel 专门处理数据解析。 在MVVM架构设计中,降低了 Controller 的存在感,减少了其内部的代码,将 Controller 设计提高成一个顶层调度者,调度多个 ViewModel 解析后数据,进行封装再展示给 View 。在后期Controller设计中,一旦设计到数据处理,此时将应该将代码转移到 ViewModel 中。


如何写一个MVC的demo

  1. 需要一个html模板 M
  2. 挂载到页面上 V
  3. 绑定事件 C
  4. 数据变化后,进行更新