vue3父组件调用子组件中的方法如何有ts类型提示
时间: 2023-06-23 08:51:18 浏览: 174
vue 父组件中调用子组件函数的方法
5星 · 资源好评率100%
在 Vue 3 中,可以使用 `ref` 和 `setup` 函数来实现父组件调用子组件中的方法并有 TypeScript 类型提示。
首先,在子组件中定义一个 `ref`,并将要调用的方法赋值给该 `ref`。例如:
```typescript
import { defineComponent, ref } from 'vue';
export default defineComponent({
setup() {
const myMethod = ref<(data: string) => void>();
const handleClick = (data: string) => {
if (myMethod.value) {
myMethod.value(data);
}
};
return {
myMethod,
handleClick,
};
},
});
```
然后,在父组件中通过 `ref` 获取子组件实例,并调用子组件中的方法。例如:
```typescript
import { defineComponent, ref } from 'vue';
import ChildComponent from './ChildComponent.vue';
export default defineComponent({
components: {
ChildComponent,
},
setup() {
const childRef = ref<InstanceType<typeof ChildComponent>>();
const handleChildMethod = () => {
if (childRef.value) {
childRef.value.myMethod.value('data');
}
};
return {
childRef,
handleChildMethod,
};
},
});
```
这样就可以实现父组件调用子组件中的方法并有 TypeScript 类型提示。
阅读全文