用vue setup语法糖实现一个子组件给父组件传参的用例
时间: 2024-02-07 07:03:31 浏览: 97
父组件:
```
<template>
<div>
<h1>{{ message }}</h1>
<child-component @onChildClick="handleChildClick"></child-component>
</div>
</template>
<script>
import { defineComponent, ref } from 'vue';
import ChildComponent from './ChildComponent.vue';
export default defineComponent({
name: 'ParentComponent',
components: {
ChildComponent,
},
setup() {
const message = ref('');
function handleChildClick(data) {
message.value = data;
}
return {
message,
handleChildClick,
};
},
});
</script>
```
子组件:
```
<template>
<button @click="handleClick">Click me!</button>
</template>
<script>
import { defineComponent, emit } from 'vue';
export default defineComponent({
name: 'ChildComponent',
setup() {
function handleClick() {
emit('onChildClick', 'Hello, Parent!');
}
return {
handleClick,
};
},
});
</script>
```
在父组件中,我们定义了一个 message 变量和一个 handleChildClick 方法。在子组件中,我们使用 emit() 方法触发了一个名为 onChildClick 的事件,并传递了一个数据。在父组件中,我们使用 @onChildClick 监听了这个事件,并将传递的数据赋值给了 message 变量。这样,我们就完成了一个子组件给父组件传参的用例。
阅读全文