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>
相关推荐
清灵xmf22 分钟前
Vue 3 自定义权限指令 v-action
前端·javascript·vue.js·自定义指令
一棵树长得超出它自己24 分钟前
jmeter if控制器在loop控制器执行结束后执行
前端·jmeter
web_Hsir27 分钟前
Uniapp 实现微信小程序滑动面板功能详解
vue.js·微信小程序·uni-app
阳树阳树2 小时前
signal-新的状态管理模式
前端·javascript
fakaifa2 小时前
beikeshop多商户跨境电商独立站最新版v1.6.0版本源码
前端·小程序·uni-app·php·beikeshop多商户·beikeshop跨境电商
爱摄影的程序猿2 小时前
如何基于 Django-Vue-Admin 快速二次开发?高效后台管理系统实战指南(附完整代码)
vue.js·python·django
木木黄木木2 小时前
HTML5手写签名板项目实战教程
前端·html·html5
姑苏洛言3 小时前
基于微信小程序实现幸运大转盘页面
前端
前端极客探险家3 小时前
如何实现一个支持拖拽排序的组件:React 和 Vue 版
前端·vue.js·react.js·排序算法
yanyu-yaya3 小时前
devextreme-react/scheduler 简单学习
前端·学习·react.js