首页 前端知识 vue3 ts 如何让子组件通过 defineExpose 暴露的方法有代码提示

vue3 ts 如何让子组件通过 defineExpose 暴露的方法有代码提示

2024-05-28 09:05:52 前端知识 前端哥 68 796 我要收藏

有时,你可能需要为一个子组件添加一个模板引用,以便调用它公开的方法。举例来说,我们有一个  Child 子组件,它有一个打开模态框的方法:

<!-- MyModal.vue -->
<script setup lang="ts">
import { ref } from 'vue'

const isContentShown = ref(false)
const open = () => (isContentShown.value = true)

defineExpose({
  open
})
</script>

 为了获取 MyModal 的类型,我们首先需要通过 typeof 得到其类型,再使用 TypeScript 内置的 InstanceType 工具类型来获取其实例类型:

<!-- App.vue -->
<script setup lang="ts">
import MyModal from './MyModal.vue'

const modal = ref<InstanceType<typeof MyModal> | null>(null)

const openModal = () => {
  modal.value?.open()
}
</script>

官网跳转 Vue官方文档

转载请注明出处或者链接地址:https://www.qianduange.cn//article/9772.html
标签
评论
发布的文章
大家推荐的文章
会员中心 联系我 留言建议 回顶部
复制成功!