MVC和MVVM都是一种设计模式。

MVC

MVC
Model:模型,用于存储业务数据;
View:视图,界面的展示;
Controller:控制器,处理视图与数据的交互。

MVC之间的关系:

  • View展示数据依赖Model,View可以直接访问Model;
  • View更新数据通过Controller,Controller更新Model。

MVVM

MVVM
Model:模型,用于存储业务数据;
View:视图,界面的展示;
ViewModel:视图模型,视图与模型之间的桥梁,处理视图与数据之间的交互。

MVVM之间的关系:

  • View不依赖Model,通过viewModel绑定数据;
  • View更新数据通过ViewModel更新Model,Model更新通过ViewModel更新View,ViewModel双向绑定。

MVVM与MVC的区别

  • MVVM与MVC最大的不同就是ViewModel与Controller的区别。
    Controller更加强调控制器是作为View更新model的中介,View展示的数据和与用户交互是通过DOM操作,只能实现单向的数据绑定。
    ViewModel更加强调Model的数据与View的UI绑定。这种绑定包括数据绑定、命令绑定、事件绑定。

      数据绑定
      View自动更新UI以反映Model的变化
      命令绑定
      在ViewModel中定义很多命令,当用户在View中触发了命令,ViewModel的命令会自动执行
      事件绑定
      ViewModel可以定义一系列的事件,并将这些事件与View中的控件进行绑定。当用户触发相应的控件时,ViewModel中的事件将被触发。

    并且ViewModel是响应式数据绑定,并不是直接对DOM操作;
    ViewModel实现了双向数据绑定,也就是当用户在View上更新数据时,Model的数据也会自动更新;当Model的数据更新时,View展示的数据也会自动更新。

总结下来,主要的区别就是:
单向与双向的通信、是否直接对DOM操作、View是否依赖Model。

参考学习了其他博客:
https://zhuanlan.zhihu.com/p/670756000


要出家的键盘
1 声望0 粉丝