vue2子组件向父组件传值
时间: 2023-08-31 22:08:55 浏览: 123
在 Vue 2 中,子组件向父组件传值可以通过自定义事件实现。以下是一种常见的方法:
1. 在子组件中,使用 `$emit` 方法触发一个自定义事件,并传递需要传给父组件的值。
```
// 子组件
<template>
<button @click="sendMessage">发送消息</button>
</template>
<script>
export default {
methods: {
sendMessage() {
this.$emit('message', 'Hello from child component');
}
}
}
</script>
```
2. 在父组件中,使用 `v-on` 或简写 `@` 监听子组件触发的自定义事件,并在相应的方法中接收子组件传递的值。
```
// 父组件
<template>
<div>
<child-component @message="receiveMessage"></child-component>
<p>接收到的消息:{{ message }}</p>
</div>
</template>
<script>
import ChildComponent from './ChildComponent.vue';
export default {
components: {
ChildComponent
},
data() {
return {
message: ''
};
},
methods: {
receiveMessage(msg) {
this.message = msg;
}
}
}
</script>
```
在上述示例中,子组件中的 `sendMessage` 方法通过 `$emit` 触发了一个名为 `message` 的自定义事件,并传递了字符串 `'Hello from child component'`。父组件中使用 `v-on` 或 `@` 监听了子组件触发的 `message` 事件,并在 `receiveMessage` 方法中接收并更新了 `message` 数据,以便在父组件中显示接收到的消息。
这样,子组件就可以将需要传递给父组件的值通过自定义事件传递出去,父组件则可以监听这个事件,并在回调函数中处理接收到的值。
阅读全文