You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Vue3+TypeScript组合式API:父组件如何获取子组件数据?

Vue3
### 2. 父组件(App.vue):正确绑定ref并访问
父组件中声明ref绑定到子组件标签,且要在组件挂载完成后(比如`onMounted`钩子)或用户交互事件中访问ref值,避免未挂载导致的undefined:
```vue
<template>
  <div>
    <BookForm ref="bookRef" />
    <button @click="getSubData">获取子组件数据</button>
  </div>
</template>

<script setup lang="ts">
import { ref, onMounted } from 'vue'
import BookForm from './BookForm.vue'

// TS环境下指定ref类型,获得类型提示
const bookRef = ref<InstanceType<typeof BookForm> | null>(null)

// 组件挂载后访问,确保子组件已实例化
onMounted(() => {
  if (bookRef.value) {
    console.log('挂载后子组件书名:', bookRef.value.bookName)
  }
})

// 点击事件中访问子组件数据
const getSubData = () => {
  if (bookRef.value) {
    console.log('子组件书名:', bookRef.value.bookName)
    console.log('子组件价格:', bookRef.value.bookPrice)
    // 调用子组件暴露的方法
    bookRef.value.resetForm()
  }
}
</script>

常见误区排查

  • 未使用defineExpose:
相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 15:50:20