vue3调用子组件中的方法?
时间: 2023-11-03 15:52:01 浏览: 94
在Vue 3中,你可以通过`ref`或者`reactive`来创建一个响应式的引用,并将其传递给子组件。然后在子组件中,你可以通过访问该引用的`.value`属性来调用父组件中的方法。
以下是一个示例:
```vue
<template>
<div>
<ChildComponent :callback="callbackRef"></ChildComponent>
</div>
</template>
<script>
import { ref } from 'vue';
import ChildComponent from './ChildComponent.vue';
export default {
components: {
ChildComponent
},
setup() {
const callbackRef = ref(null);
const someMethod = () => {
// 在这里执行你的逻辑
console.log('父组件方法被调用');
};
callbackRef.value = someMethod;
return {
callbackRef
};
}
};
</script>
```
在子组件中,你可以通过对`callback`进行解构赋值来获取父组件传递的方法引用。
```vue
<template>
<div>
<button @click="callback()">调用父组件方法</button>
</div>
</template>
<script>
export default {
props: {
callback: {
type: Function,
required: true
}
},
methods: {
callback() {
this.callback(); // 调用父组件方法
}
}
};
</script>
```
这样,当在子组件中点击按钮时,就会调用父组件中的方法。
阅读全文