文章目录
- 基本用法
基本用法
官方文档是这样介绍的:.sync 修饰符
- 简单来说就是实现父子组件数据之间的双向绑定,当子组件修改了一个
props
的值时,也会同步到父组件中,实现子组件同步修改父组件,与v-model
类似。 - 类别在于:一个组件上只能有一个
v-model
,.sync
修饰符可以有多个。
正常父传子:
- 父组件:
<template><div>父组件:{{ n }}<Son :number="n"></Son></div>
</template><script>
import Son from "./son.vue";export default {data() {return {n: 0}},components: {Son},
}
</script>
- 子组件:
<template><div>子组件:{{ number }}<button @click="$emit('update:number',number+=1)">自增</button></div>
</template>
<script>
export default {props:['number']
}
</script>
父子双向绑定:
- 父组件:
<template><div>父组件:{{ n }}// 方法一等价于方法二// 方法一:props 传值+ update 监听<Son :number="n" @update:number="(val) => (n = val)"></Son>// 方法二:.sync方法<Son :number.sync="n"></Son></div>
</template><script>
import Son from "./son.vue";export default {data() {return {n: 0}},components: {Son},
}
</script>
- 子组件:
<template><div>子组件:{{ number }}<button @click="$emit('update:number',number+=1)">自增</button></div>
</template>
<script>
export default {props:['number']
}
</script>