Vue的双向绑定是建立在MVVM(Model-View-ViewModel)模型上的。MVVM分为三部分,数据层, 视图层,业务逻辑层.
双向就是 数据变化更新视图,视图变化更新数据
这里主要包含两部分
new Vue()执行初始化会遍历递归data,在Observer中通过Object.defineProperty的get,set对数据进行响应化处理。
在对模板进行编译时,Compiler会对v-开头的指令进行解析,找到动态绑定的数据,从data中获取数据并初始化视图。如果遇到v-model,会根据不同的元素使用不同的属性并抛出不同的事件,处理完成后更新data中的数据。