Vue2如何实现双向绑定

119 阅读1分钟

网上博客讲的很绕,这里做个简单总结:

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

参考: www.cnblogs.com/canfoo/p/68…