MVVM 分为 Model、View、ViewModel:
Model代表数据模型,数据和业务逻辑都在Model层中定义;
View代表UI视图,负责数据的展示;
ViewModel负责监听Model中数据的改变并且控制视图的更新,处理⽤户交互操作;
在MVVM架构中,是不允许数据和视图直接通信的,只能通过ViewModel来通信,而ViewModel就是定义了一个Observer观察者(用来劫持并监听数据所有属性)。ViewModel是连接View和Model的中间件
- ViewModel能够观察到数据的变化,并对视图对应的内容进行更新
- ViewModel能够监听到视图的变化,并能够通知数据发生变化
Vue.js就是一个MVVM的实现者,它的核心是实现了DOM监听与数据绑定。ViewModel层向上与视图层进行双向数据绑定。 向下与Model层通过接口请求进行数据交互。
借鉴知乎文章(为自己做笔记),详细参考zhuanlan.zhihu.com/p/439724486