在vue3中使用子组件中的方法,和vue2类似
组件设置ref值
javascript"><ChildVue ref="childRef" />
组件实例获取,定义和上面ref相同的值
const childRef = ref<any>();
在父组件自定义方法内直接调用
// 调用子组件方法
childRef.value.foo(); // foo
但是如果你的setup是写在script标签里面的,则会报以下错误
childRef.value.foo is not a function
所以还需要第4步
4.子组件内设置对外公开的变量
上面第2步获取到子组件实例后,无法使用子组件内的方法,因为使用 <script setup> 的组件默认是关闭的,如果需要公开,需要使用 defineExpose 编译器宏。
// 子组件代码
const foo = () => {
console.log("foo");
}
defineExpose({
foo
});