Vue3 Ts 如何获取组件的类型

vue3 Ts ref 子组件

1、默认写法

typeof:获取ts类型

InstanceType:获取模版的实例

vue 复制代码
<tempolate>
  <myComponent ref="myCompRef">
</tempolate>

<script setup lang="ts">
import { ref } from "vue"
import myComponent "@/compoments/myComponent"

const myCompRef = ref<InstanceType<typeof myComponent>>()
</script>
2、封装后

abstract:定义抽象类

"_":命名规范,参数名前添加下划线,表示该参数本身是不使用的,取消参数没有使用的警告

ts 复制代码
import { ref } from "vue"

export function useCompRef<T extends abstract new (...args: any) => any> (_comp: T){
	return ref<InstanceType<T>>()
}
vue 复制代码
<tempolate>
  <myComponent ref="myCompRef">
</tempolate>

<script setup lang="ts">
import { useCompRef } from "@/utils/useCompRef"
import myComponent "@/compoments/myComponent"

const myCompRef = useCompRef(myComponent)
</script>
相关推荐
专吃海绵宝宝菠萝屋的派大星1 分钟前
使用Dify对接自己开发的mcp
java·服务器·前端
爱分享的阿Q2 分钟前
Rust加WebAssembly前端性能革命实践指南
前端·rust·wasm
蓝黑20203 分钟前
Vue的 value=“1“ 和 :value=“1“ 有什么区别
前端·javascript·vue
小李子呢021112 分钟前
前端八股6---v-model双向绑定
前端·javascript·算法
He少年26 分钟前
【基础知识、Skill、Rules和MCP案例介绍】
java·前端·python
史迪仔011229 分钟前
[QML] QML IMage图像处理
开发语言·前端·javascript·c++·qt
AwesomeCPA33 分钟前
Miaoduo MCP 使用指南(VDI内网环境)
前端·ui·ai编程
前端大波35 分钟前
前端面试通关包(2026版,完整版)
前端·面试·职场和发展
qq_433502181 小时前
Codex cli 飞书文档创建进阶实用命令 + Skill 创建&使用 小白完整教程
java·前端·飞书
IT_陈寒1 小时前
为什么我的Vite热更新老是重新加载整个页面?
前端·人工智能·后端