2020-08-10

简单阐述Vue的MVVM模式

vue中采用了mvvm的模式:
m:model
v:view
vm:viewModel

view <> viewModel <> model

2020-08-10

注意: model与view层没有任何的联系,都是靠viewModel将两者进行了关联
当model层数据改变了,viewModel就知道数据改变了,更新view层。反之亦然。

请问一下,vue中为何model层数据改变了,view会自动更新最新的数据视图呀?(双向数据绑定的底层原理是什么?)
vue在创建vm的时候,会将数据配置到实例中,然后通过Object.defineProperty方法,为数据动态的添加getter与setter方法。
当获取数据的时候,会触发对应的getter方法,当设置数据的时候,触发对应的setter方法。
然后当setter方法触发完成的时候,内部会进一步触发watcher,从而数据改变了,视图则更新操作完毕。

2020-08-10