.sync修饰符
vue的prop是单向下行绑定:父级的prop的更新会向下流动到子组件中,但是反过来不行
这时,可以通过 .sync修饰符实现“双向绑定”
使用
.sync修饰符作用与v-model类似,可以双向绑定父子组件的props参数1
2
3
4
5
6// 子组件
<template>
<child :title.sync="myTitle"> // myTitle是父组件中data的一个属性
</template>
// 当子组件需要更新 title 的值时,它需要显式地触发一个更新事件:
this.$emit('update:title', newValue)这样title的属性在子组件内部更新,父组件也能感知的到,实现了“双向绑定”。
原理
.sync修饰符的本质是一个语法糖1
2
3<child :title.sync="myTitle">
// 等同于
<child :title="myTitle" @update:title="myTitle=$event">是通过this.$emit()触发update事件,实现父组件数据的修改