为什么,viewmodel更改完数据之后,视图就能自动更新
- 用户产生操作或者其他条件触发 -> 数据更新
- 数据变化之后,viewmodel是怎么就知道数据变化了呢?又是怎么去更新视图的呢?
viewmodel会对传入data生成data,利用Object.defineProperty为data挂载对应的属性,每个属性就会拥有自己的getter和setter,当data变化之后,不仅更改了data,并且data的setter就会执行,viewmodel的watcher就能得知数据的变化,然后进行对应的处理,也就是更新视图
这就是vue数据双向绑定实现MVVM结构的原理(响应式原理)