在 Vue.js 中,子组件向父组件传递数据可以通过自定义事件来实现。子组件可以通过 `$emit` 方法触发一个自定义事件,并且可以传递数据给父组件。
下面是一个示例,演示了子组件向父组件传递数据的过程:
<!-- ParentComponent.vue -->
<template>
<div>
<ChildComponent @childEvent="handleChildEvent"></ChildComponent>
<p>Received data from child: {{ receivedData }}</p>
</div>
</template>
<script>
import ChildComponent from './ChildComponent.vue';
export default {
components: {
ChildComponent
},
data() {
return {
receivedData: ''
}
},
methods: {
handleChildEvent(data) {
this.receivedData = data;
}
}
}
</script>
htmlCopy Code<!-- ChildComponent.vue -->
<template>
<div>
<button @click="sendDataToParent">Send Data to Parent</button>
</div>
</template>
<script>
export default {
methods: {
sendDataToParent() {
const data = 'Hello from child';
this.$emit('childEvent', data);
}
}
}
</script>
在这个示例中,子组件 ChildComponent 中包含一个按钮,当按钮被点击时,子组件会触发一个名为 `childEvent` 的自定义事件,并将数据 `'Hello from child'` 作为参数传递给父组件。
在父组件 ParentComponent 中,我们使用 `@childEvent` 监听子组件触发的自定义事件,并在 `handleChildEvent` 方法中接收传递的数据,并将其保存到 `receivedData` 变量中。
通过这样的方式,子组件就可以向父组件传递数据,并且父组件可以在监听到子组件触发的自定义事件时进行相应的处理。这种方式使得组件之间的数据通信更加灵活和可扩展。