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