MVVM 模型
MVVM 是 Model-View-ViewModel 的简写。它本质上就是 MVC(Model-View-Controller)的改进版,即模型-视图-视图模型。
三个核心部分
- Model:指的是后端传递的数据(领域模型 / 业务数据)。
- View:指的是所看到的页面(UI 视图)。
- ViewModel:MVVM 模式的核心,是连接 View 和 Model 的桥梁。
ViewModel 的两个方向
- 将 Model 转化成 View:将后端传递的数据转化成所看到的页面。实现方式是数据绑定。
- 将 View 转化成 Model:将所看到的页面转化成后端的数据。实现方式是 DOM 事件监听。
这两个方向都实现的,我们称之为数据的双向绑定。
总结
在 MVVM 的框架下,视图和模型是不能直接通信的。它们通过 ViewModel 来通信:
- 当数据发生变化时,ViewModel 能够监听到数据的这种变化,然后通知到对应的视图做自动更新。
- 当用户操作视图时,ViewModel 也能监听到视图的变化,然后通知数据做改动。
MVVM 中的 View 和 ViewModel 可以互相通信。MVVM 框架把 View 的状态和行为抽象化,将视图 UI 和业务逻辑分开。ViewModel 帮我们取出 Model 的数据,同时帮忙处理 View 中由于需要展示内容而涉及的业务逻辑。
MVVM(Model-View-ViewModel)框架的由来便是 MVP(Model-View-Presenter)模式与 WPF 结合的应用方式时发展演变过来的一种新型架构框架。它立足于原有 MVP 框架并且把 WPF 的新特性糅合进去,以应对客户日益复杂的需求变化。
Vue 就是一个典型的 MVVM 框架:模板对应 View,data 对应 Model,Vue 实例(响应式系统 + 模板编译)对应 ViewModel。
来源整理自:vue3js.cn 面试官系列



