vue3子组件像父组件传递方法
时间: 2023-06-21 09:09:48 浏览: 97
在 Vue3 中,可以使用 `emits` 属性和 `$emit` 方法来实现子组件向父组件传递方法。具体步骤如下:
1. 在父组件中定义一个方法,并将其作为 prop 传递给子组件。
```vue
<template>
<div>
<child-component :on-click="handleClick"></child-component>
</div>
</template>
<script>
import ChildComponent from './ChildComponent.vue'
export default {
components: {
ChildComponent
},
methods: {
handleClick() {
console.log('Button clicked!')
}
}
}
</script>
```
2. 在子组件中使用 `emits` 属性声明该组件可以触发的事件。
```vue
<template>
<button @click="$emit('click')">Click me!</button>
</template>
<script>
export default {
emits: ['click']
}
</script>
```
3. 当子组件中的按钮被点击时,会触发 `$emit` 方法并传递一个事件名称,父组件会接收到这个事件并调用相应的方法。
注意:在 Vue3 中,使用 `emits` 属性声明的事件必须在模板中使用 `$emit` 方法触发,否则会抛出警告。
阅读全文