Vue 中的 .sync 修饰符

142 阅读1分钟
Vue 中的 .sync 修饰符

.sync修饰符是事件绑定的语法糖。

Vue 的组件在接受外部数据 props 时,Vue 规定,子组件在通过 props 接受外部数据后只有使用该数据的权利,但没有修改该属性的权利。

因此 Vue 规定组件只能有权使用 props 的属性,想要改变,就必须通知该数据的真正拥有者,也就是使用该组件的父文件

.sync 修饰符的作用

简化了父子组件之间数据通信的代码书写方式,对 prop 进新双向绑定。

举例

  • 父组件有 1000 元
  • 子组件每次点击按钮会花掉 10 元
  • 父组件上显示的余额与子组件显示的余额会相应发生变化

不使用 .sync 修饰符时

要实现父子组件间值的传递,通常使用 props 和自定义事件 $emit 。
其中,父组件通过 props 将值传给子组件,子组件再通过 $emit 将值传给父组件,父组件通过事件监听获取子组件传过来的值。

总结

不使用 .sync 修饰符:<Child :money="total" v-on:update:money="total = $event"/>
使用 .sync 修饰符: <Child :money.sync="total"/>