vue3里面的组件实例类型(包括原生的html标签类型)

在 通过 ref(null)获取组件的时候,我们想要为 组件标注组件类型,可以通过 any 类型来进行标注,但是很明显,这些的代码很不优雅,所以我们可以利用 vue3 里面的 InstanceType 来进行类型标注

这是官网上面有关 InstanceType  的使用方法截图

但是上面的类型是自己定义的组件的,如果想给原生的 html 标签进行类型标注,我们该写什么类型呢,来看一下代码

<script setup lang="ts">
import { ref, Ref } from 'vue'


// HTMLHeadingElement 类型
const h1Instance: Ref<InstanceType<typeof HTMLHeadingElement> | null> =
  ref(null)

// HTMLDivElement 类型
const divInstance: Ref<InstanceType<typeof HTMLDivElement> | null> = ref(null)


const btnClick = () => {
  console.log(h1Instance.value, 'h1Instance.value')
  console.log(divInstance.value, 'divInstance.value')
}
	
</script>

<template>
  <h1 ref="h1Instance">h1标签</h1>
  <div ref="divInstance">div标签</div>
  <button @click="btnClick">测试按钮</button>
</template>

<style lang="less" scoped>
</style>

有关 HTMLHeadingElement 和 HTMLDivElement 类型是怎么来的,可以看这篇文章

如何查看HTML元素的TS类型_html tag ts-CSDN博客

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值