1、对于 MVVM 的理解
MVVM 是 Model-View-ViewModel 的缩写。 Model 代表数据模
型,也可以在 Model 中定义数据修改和操作的业务逻辑。 View 代表
UI 组件,它负责将数据模型转化成 UI 展现出来。 ViewModel 监听
模型数据的改变和控制视图行为、处理用户交互,简单理解就是一个
同步 View 和 Model 的对象,连接 Model 和 View。 在 MVVM 架
构下,View 和 Model 之间并没有直接的联系,而是通过
ViewModel 进行交互,Model 和 ViewModel 之间的交互是双向
的, 因此 View 数据的变化会同步到 Model 中,而 Model 数据的
变化也会立即反应到 View 上。 ViewModel 通过双向数据绑定把
View 层和 Model 层连接了起来,而 View 和 Model 之间的同步
工作完全是自动的,无需人为干涉,因此开发者只需关注业务逻辑,
不需要手动操作 DOM, 不需要关注数据状态的同步问题,复杂的数据
状态维护完全由 MVVM 来统一管理。
2、vue 实现双向数据绑定
vue 实现数据双向绑定主要是:采用数据劫持结合发布者-订阅者模式
的方式,通过 Object.defineProperty()来劫持各个属性的
setter,getter,在数据变动时发布消息给订阅者,触发相应监听回
调。当把一个普通 Javascript 对象传给 Vue 实例来作为它的 data
选项时,Vue 将遍历它的属性,用 Object.defineProperty 将它们