问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

Vue3中组件使用ref时获取组件类型推导

发布网友 发布时间:2024-10-02 10:04

我来回答

1个回答

热心网友 时间:2024-10-24 12:06

在 Vue3 + ts 开发过程中,我们常常会使用第三方组件库,如 Element-Plus UI 或 Navie UI,它们提供了许多便捷的方法来实现复杂交互。为了给组件添加 ref 并获取其实例,我们通常会执行以下操作:

然而,这样做并未实现 ts 类型推导,违背了我们使用 ts 的初衷。在不传递泛型参数的情况下,drawerRef 被定义为 any 类型,效果如上所示。

为了解决此问题,我们尝试给 const drawerRef = ref() 添加类型定义。起初,将组件传入的方案并未成功,导致错误。但随后,我们意识到使用 typeof 获取组件类型是可行的。在 js 中,typeof 返回运行时的类型;在 ts 中,将 typeof 与类型注释结合使用,会得到 ts 的类型信息。我们将此尝试并观察结果。

尽管我们成功获取了类型,但得到的是组件配置对象的类型,而非期望的组件实例。这时,我们引入了 ts 的工具 InstanceType。借助 InstanceType,我们可以获取一个对象的实例类型。通过此操作,我们最终捕获到了组件暴露的方法,成功获取了所需类型。

为了提升使用便捷性,我们可以将此过程封装为一个 hook。这样,每次调用此 hook 时,无需再重复上述操作,大大提升了开发效率。根据上述理解,我们最终实现了以下封装结果。

至此,我们只需将组件传入此 hook,即可获得带有类型推导的组件实例对象,操作简单且高效。通过以上步骤,我们在 Vue3 中实现了组件使用 ref 时的类型推导,提升了开发质量和效率。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
请问神舟笔记本售后问题,我是在x宝上买的准系统,要是坏了是不是随便去... 写出不 不 的成语三个。(简单的)。 做淘宝天猫客服兼职,是真的吗?还要押金 淘宝刷单兼职被骗了要怎样办 神舟电脑坏了怎么办? 不( )不( )(成语) 椭圆形的脸适合这个发型吗? 天猫店铺注册兼职是真的吗?可以做吗? 广州国际会展中心参观须知 2017年10月6号到2020年5月16号,一共有多少天,多少小时,多少分钟... Vue 3 Composition API与Hooks模式 ...ReturnType的多hook间返回值和参数类型实现“类型收敛” 福建金桥学校如何体现其独特的教育理念和价值观? 临沂市金雀山职工中等专业学校办学宗旨 雒城二中教育宗旨 重庆安全技术职业学院办学宗旨 最值得收藏的25条美容妙招 这个月要去韩国旅行,给家人带点什么纪念品好呢,韩国景区推荐平价_百度... 太吾绘卷怎么偷精纯介绍_太吾绘卷怎么偷精纯是什么 惊天破完整版?惊天破电影高清百度云下载 梦幻西游的字在PS里是什么选项 梦幻西游怎样打出颜色的字 有谁知道鬼吹灯有声版第一部精绝古城到第十二话后面的哪里能够找到呢... 各位朋友谁能给我一个鬼吹灯MP3格式的打包下载能下的来的地址,我有找... 电话费实缴金额是289.67元,可是我缴了300元,其中10.63元转为预存金... EBC5丰帆的作品都有哪些?鬼吹灯就不用说了。如果有丰帆其他作品的下载... EBC5丰凡版鬼吹灯mp3第三四季哪有?下载 下列( )账户的余额一般在贷方 A固定资产 B预收账款 C预付账款 D实... WPS表格中双击单元格后,单元格里面的内容就消失了是怎么... wps 表格,因为备注字体太多,怎么可以显示少一点,然后鼠标放在上面就自动... UMI3源码解析系列之插件化架构核心 TradingView--前端(Vue)最专业的K线图表工具(只支持历史数据K线展示... 梦见马蜂蛰老婆 ...半年教师资格课程考试通知举办教育学、教育心理学考前培训 关于汾酒杏花村 山西杏花村酒厂出产的89年60度的瓷瓶汾酒的价格大约是多少?瓶子印了一... 2002牧童杏花村 38度 糖度:65-85 500ML 标准号:QBT1981 许可证:XK01... 南瓜花卷的做法及花样窍门 阴道口两侧瘙痒,抓了会有红点出现,越抓越明显,有时侯连阴唇都会痒,这是... ...突然发现龟头上长了几颗小红点,有时感觉有点痒,不是是性病吧?我现在... 身上有小红点伴随着痒是怎么回事 ...就有红点出现,而且越挠越多,请问一下这是怎么回事?应该怎么办?_百度... ...我想快速瘦腿、减肥,还想快速长高有什么好的运动... ...月快速有效的减肥方法!最好是最有效的瘦腰瘦腿的方法!悬赏50分... 死神大战火影中的鸣人怎么爆九尾 平顶山中考录取分数线 求HYDE<虹>&<雪之足迹>歌词 日本彩虹乐团有那些歌好听?不过我感觉和x-japan的没法比 但也有人气... 安徽2007年510分到515分之间多少人? 2021永州市三中录取分数线是多少?