在官方文档:vue .sync 修饰符,了解到 2.3.0 起 Vue 新增了 .sync 修饰符,但是它只是作为一个编译时的语法糖存在,它会被扩展为一个自动更新父组件属性的 v-on 监听器。
代码示例如下:
<Child :money.sync="total" />
扩展后如下:
<Child :money="total" v-on:update:money="total = $event" />
当子组件需要更新 money 的值时,它需要显式地触发一个更新事件:
<button @click="$emit('update:money', money - 100)"></button>
总结修饰符 .sync 的功能:
- 代码
<Child :money.sync="total" />会被拓展为<Child :money="total" v-on:update:money="total = $event" />,子组件利用$emit('update:money', money-100)向父组件传递事件,updata:money为事件名,money-100为事件,父组件通过 $event 来接受事件, .sync 就是一个语法糖。