其实就是语法糖,效果很妙
首先简单复习一下Vue中父子路由传值

// 父组件给子组件传入一个函数
<MyFooter :age='age' @setAge='(res) => age = res' ></MyFooter>

// 子组件通过调用这个函数来实现修改父组件的状态
mounted () {
    console.log(this.$emit('setAge', 123456));
}

用.sync修饰符

// 父组件将age传给子组件并使用.sync修饰符
<MyFooter :age.sync='age' ></MyFooter>

// 子组件触发事件
mounted () {
    console.log(this.$emit('update:age', 1234567));
}

事件名被换成 update:age
update:是被固定的也就是Vue为我们约定好的名称部分
age是我们要修改的状态的名称,是我们手动配置的,与传入的状态名字对应起来

注意:
必须在执行名称前加上 update: 的前缀才能正确触发事件。