父子自定义组件v-model
时间: 2024-03-20 17:37:50 浏览: 65
vue 自定义组件 v-model双向绑定、 父子组件同步通信的多种写法
5星 · 资源好评率100%
父子自定义组件的v-model是一种在父组件中使用子组件时,通过v-model指令实现双向数据绑定的方式。通过v-model,父件可以直接修改子组件的数据,并且子件也可以将修改后的数据传递给父组件。
在父组件中,使用v-model时,将一个属性和一个事件绑定到子组上。属性用来接收子组件传递值,事件用来接收子组件修改后的值。:
```html
<template>
<div>
<child-component v-model="value"></child-component>
</div>
</template>
<script>
import ChildComponent from './ChildComponent.vue';
export default {
components: {
ChildComponent
},
data() {
return {
value: ''
};
}
};
</script>
```
在子组件中,需要接收父组件传递的值,并且在值发生变化时,通过$emit方法触发一个事件将新的值传递给父组件。例如:
```html
<template>
<div>
<input type="text" :value="innerValue" @input="updateValue($event.target.value)">
</div>
</template>
<script>
export default {
props: ['value'],
data() {
return {
innerValue: this.value
};
},
methods: {
updateValue(newValue) {
this.innerValue = newValue;
this.$emit('input', newValue);
}
}
};
</script>
```
这样,当父组件中的value属性发生变化时,子组件中的innerValue也会跟着变化,而当子组件中的input值发生变化时,会通过updateValue方法将新的值传递给父组件。
阅读全文