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

 

posted @ 2020-04-23 13:41  有梦想的咸鱼7  阅读(3353)  评论(0编辑  收藏  举报