Vue.js 中的 v-bind.sync 指令用于在父组件和子组件之间创建双向数据绑定。它允许子组件更新从父组件传递下来的 prop 的值,并在子组件修改父组件时更新父组件中的值。
以下是它的工作原理:
- 在父组件中,使用带有修饰符的 v-bind 指令将 prop 传递给子组件。例如:
.sync
<template>
<ChildComponent :value.sync="data"></ChildComponent>
</template>
<script>
export default {
data() {
return {
data: 'initial value'
}
},
}
</script>
- 在子组件中,您将 prop 作为常规 prop 接收,并在您想要修改其值时发出更新事件。例如:
<template>
<input type="text" :value="value" @input="$emit('update:value', $event.target.value)">
</template>
<script>
export default {
props: ['value']
}
</script>
在子组件中,我们使用指令将输入字段的值绑定到从父组件接收的 prop。然后,我们侦听事件,并在输入更改时发出具有更新值的事件。value
v-bind
input
update:value
通过此设置,每当子组件修改值时,它也会在父组件中自动更新,反之亦然。修饰符是双向数据绑定的语法糖,是 Vue.js 中实现父组件和子组件之间同步的便捷方式。.sync