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>
相关推荐
人工智能训练师5 小时前
Ubuntu22.04如何安装新版本的Node.js和npm
linux·运维·前端·人工智能·ubuntu·npm·node.js
Seveny075 小时前
pnpm相对于npm,yarn的优势
前端·npm·node.js
yddddddy6 小时前
css的基本知识
前端·css
昔人'6 小时前
css `lh`单位
前端·css
Nan_Shu_6148 小时前
Web前端面试题(2)
前端
知识分享小能手8 小时前
React学习教程,从入门到精通,React 组件核心语法知识点详解(类组件体系)(19)
前端·javascript·vue.js·学习·react.js·react·anti-design-vue
蚂蚁RichLab前端团队9 小时前
🚀🚀🚀 RichLab - 花呗前端团队招贤纳士 - 【转岗/内推/社招】
前端·javascript·人工智能
孩子 你要相信光9 小时前
css之一个元素可以同时应用多个动画效果
前端·css
萌萌哒草头将军9 小时前
Oxc 和 Rolldown Q4 更新计划速览!🚀🚀🚀
javascript·vue.js·vite
huangql5209 小时前
npm 发布流程——从创建组件到发布到 npm 仓库
前端·npm·node.js