网上博客讲的很绕,这里做个简单总结:
- 一般使用 v-model / .sync 实现,v-model是v-bind:value和v-on:input的语法糖
-
a. v-bind:value 实现了data=》UI的单向绑定 -
b. v-on:input 实现了UI-》data的单向绑定 -
c. 以上两者加起来就是双向绑定了
- 这两个单向绑定是如何实现的?
-
a. v-bind:通过Object.defineProperty API给data创建getter和setter,用于监听data的改变,data一变就会改变UI -
b. v-on:通过template complier 给DOM添加事件监听,DOM input的值变了就会去修改data