Vue 中的 .sync 修饰符有什么用

117 阅读1分钟

介绍

  • 因为Vue2规定组件不能修改props的外部数据,导致如果要进行组件与组件之间的数据绑定就必须要用到$emint$event来传参和获取参数,.sync就是把这个操作进行了简化

$emint

  • 可以触发事件,并传参

$event

  • 可以获取到$emint 传的参

.sync

  • 使用起来说实话并不麻烦但是有一些代码工作量,由于这样的场景在实际开发中比较常见,所以Vue2让.sync来代替$event做的事情。

  • 如果要使用,sync那么子组件的$emint必须把参数传给updata:

//子组件
<div>
    <button @click = @click="$emit('update:money', money - 100)">消费100元</button>
</div>


// 父组件
<子组件名 :money.sync = "total" /> 
<子组件名 :money = "total" v-on:update:money = "total = $event"/>
  • 父组件的上下两行代码是等价的

需要注意

  • 带有 .sync 修饰符的 v-bind 不能和表达式一起使用

  • 例如 v-bind : money.sync = " money + 100 " 是无效的