在使用 vue 的过程当中,我们有时会遇到如下场景:
    子组件需要引用父组件的一个属性,并且修改。由于 vue 是不允许对外部的数据直接修改的,所以便需要在两个组件之间建立一个通信,让父组件去监听子组发出的请求,然后再对相应的值做出改变:

    我们首先需要子组件上面,建立一个事件,然后写上事件名 和 变化的值:

    1. // vue 内置了 EventBus 为 $emit ,可以用来触发事件
    2. this.$emit('update:money', money-100) //这里的 this 可以省略

    然后在父组件上面监听这个事件的触发,将变化的值赋给传回来:

    1. // 同时 vue 将子组件改变的那个值,存进了 $event 这个内置变量中,这样就可以在父组件中获取到这个值
    2. :money="total" v-on:update:money="total"="$event"

    vue 又将监听的部分写集成为 .sync 修饰符,这样看起来更加的简洁。于是上面这一行代码也可以简写为如下形式:

    1. :money.sync="total"

    所以说 .sync 修饰符集成了以下功能:
    监听子组件中的修改事件,将子组件中修改后的结果经由 $event 传入,更新相关数据。