在vue3中使用子组件中的方法,和vue2类似

  1. 组件设置ref值

<ChildVue ref="childRef" />
  1. 组件实例获取,定义和上面ref相同的值

const childRef = ref<any>();
  1. 在父组件自定义方法内直接调用

// 调用子组件方法
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
});

Logo

前往低代码交流专区

更多推荐