Vue 2 是如何实现双向绑定的?

253 阅读1分钟
  1. 说明一般使用 v-model / .sync 实现,v-modelv-bind:valuev-on:input语法糖

    1. v-bind:value 实现了 data ⇒ UI 的单向绑定
    1. v-on:input 实现了 UI ⇒ data 的单向绑定
    1. 加起来就是双向绑定了
  2. 这两个单向绑定是如何实现的呢?

    1. 前者通过 Object.defineProperty API 给 data 递归的创建 getter 和 setter,用于监听 data 的改变,data 一变就会安排改变 UI

    2. 后者通过 template compiler 给 DOM 添加事件监听,DOM input 的值变了就会去修改 data。

详细介绍:www.cnblogs.com/canfoo/p/68…