Vue2是如何实现双向绑定的
- 说明一般使用
v-model
/.sync
来实现,v-model
是v-bind:value
和v-on:input
的语法糖。v-bind:value
实现了 data => UI 的单向绑定。v-on:input
实现了 UI => data 的单向绑定。- 加起来就是双向绑定。
- 这两个单项绑定是如何实现的呢?
- 前者通过
Object.defineProperty
这个API给data
创建getter
和setter
,用于监听data
的改变,data
一变就改变UI。 - 后者通过
template compiler
给DOM添加事件监听,DOMinput
的值变化了就会去修改data
。
- 前者通过
参考链接