• Vue 3 setup 中通过 ref 获取子组件实例数据(TS版)


    Vue 3.2 版本开始,

  • 第二步:在子组件定义组件实例类型

    如果完成第一步的话,在父组件调用子组件实例里某个属性的时候,TS 会报错,找不到该属性(但不影响运行)

    所以这里还需要定义一个类型,来声明子组件实例的类型

    具体可以看这个 issue

    这里定义一个类型 API, 里面是要暴露出去的属性

    1. // Son.vue
    2. <template>template>

    第三步:父组件引入子组件的类型,并定义 ref

    把我们在子组件定义的类型 API 引入父组件,然后在声明子组件的 ref 时使用

    看,我们用上了 TS 的提示

    1. // Father.vue
    2. <template>
    3. <Son ref="refSon">Son>
    4. template>

    题外话

    还可以看下 InstanceType ,通过 TS 自带类型,来获取子组件的实例类型

    但是对使用

总结