vue2 如何实现双向绑定
1、 一般使用v-model/.sync来实现双向绑定。这里我来介绍的是v-model如何实现的双向绑定。使用v-model的时候,它实际上是一个语法糖,实现了绑定value,监听input事件,为此我们可以把它拆成两个单项绑定来理解。
2、概括:
第一个是实现value的绑定,也就是当data发生改变的时候,UI也会直接改变;第二个是监听input事件,也就是当input改变的时候data也变。
3、具体描述:
(1)第一个单向绑定是通过object.defineProperty 这个API给data的每一个属性递归的创建getter、setter,我们把data的整个监听getter、setter,那么只要data被修改了,就去安排UI更新。
(2)第二个单向绑定是通过template compiler,在根元素上添加事件委托监听,只要input值发生变化就去修改对应的data。