Vue可以理解为是MVVM模式的前端框架,虽然在Vue的官网描述中说Vue没有完全遵循MVVM,但是Vue的设计也受到了它的启发。
image.png
MVVM是Model-View-ViewModel的简写。它本质上就是MVC 的改进版。MVVM 就是将其中的View 的状态和行为抽象化,让我们将视图 UI 和业务逻辑分开。
MVVM模式的组成
模型
模型是指代表真实状态内容的领域模型(面向对象),或指代表内容的数据访问层(以数据为中心)。
视图
就像在MVC和MVP模式中一样,视图是用户在屏幕上看到的结构、布局和外观(UI)。
视图模型
视图模型是暴露公共属性和命令的视图的抽象。MVVM没有MVC模式的控制器,也没有MVP模式的presenter,有的是一个绑定器。在视图模型中,绑定器在视图和数据绑定器之间进行通信。
绑定器
声明性数据和命令绑定隐含在MVVM模式中。绑定器使开发人员免于被迫编写样板式逻辑来同步视图模型和视图。
image.png
MVVM模式本质上是MVC模式的升级版,当业务越加复杂时,原先的MVC模式的Control层的业务复杂度越来越高,代码越来越臃肿,Model层与View层的解耦越来越明显,这个时候基于MVVM模式,进一步解决Control层的问题,让Model层与View层始终保持独立和解耦,与ViewModel层实现双向数据绑定,实现减少开发量和提升维护性的目的。用户不在关心对DOM的操作。