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
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。