vue v-model 双向绑定原理 以及语法糖实际是什么

v-model 原理: 

  从接触Vue我们就知道 v-model是实现数据双向绑定的 那他能实现绑定的原理到底是啥?

  其实v-model本质上就是语法糖 在使用 v-model 后既绑定了数据 有添加了一个@input事件监听

  <input v-model='search' />

  等价于

  <input :bind='search' @input='search = $event.target.value'>

当在input元素中使用v-model实现双数据绑定,其实就是在输入的时候触发元素的input事件,通过这个语法糖,也能够实现父子组件数据的双向绑定

  父组件:

  

   子组件:

  

 通过v-bind把父组件的数据绑定到了子组件的props属性中,而在props上默认用value取值,然后通过$emit触发事件input,因为v-model绑定的事件是input,故在子组件上触发了父组件的input事件,通过触发事件来进行传值,实现了父子组件数据的双向绑定,相对于直接使用v-bind以及自定义事件代码量有所减少

大佬解释:https://www.xiaoboy.com/topic/vue-parent-child-communication-by-v-model.html

原文地址:https://www.cnblogs.com/qlb-7/p/12760265.html