vue父组件监听子组件值的变化的示例代码
时间: 2023-09-16 19:09:17 浏览: 96
以下是一个简单的示例代码:
父组件:
```
<template>
<child-component :message="message" @message-updated="onMessageUpdated" />
</template>
<script>
import ChildComponent from './ChildComponent.vue'
export default {
components: {
ChildComponent
},
data() {
return {
message: ''
}
},
methods: {
onMessageUpdated(newMessage) {
this.message = newMessage
}
}
}
</script>
```
子组件:
```
<template>
<div>
<input v-model="localMessage" @input="updateMessage" />
</div>
</template>
<script>
export default {
props: {
message: {
type: String,
required: true
}
},
data() {
return {
localMessage: this.message
}
},
methods: {
updateMessage() {
this.$emit('message-updated', this.localMessage)
}
},
watch: {
message(newMessage) {
this.localMessage = newMessage
}
}
}
</script>
```
这个示例代码演示了父组件如何监听子组件值的变化。子组件通过 props 接收父组件传递的 message 值,并在自己内部维护一个本地的 localMessage。父组件监听子组件的 message-updated 事件,并在回调函数中更新自己的 message 值。同时,子组件也通过 watch 监听 message 值的变化,保证自己的 localMessage 始终与 props 中的 message 同步。
阅读全文