Vue3 中, tsx 组件怎么暴露方法提供给父组件调用?

220 天前
 twofox

例如有一个组件 <DeviceInfoForm ref="formRef"/>

在父组件可以用过 formRef.value.open(type, id) 调用这个组件的open方法

子组件 在组合式 API 中是这么写的

<script setup lang="ts">

 //定义一个方法
 const open = () => 
 {
   //忽略
 }
 defineExpose({ open })  //通过这个方法暴露出去
</script>

但是如果是 tsx/jsx 的方式我要怎么写呢?

<script lang="tsx">
export default defineComponent({
  name: 'Form',
  props: {}
  setup(props, { slots, expose, emit }) {
  
  const open = () =>{}
  
  defineExpose({ open })  //这里的写法,父组件似乎无法读取
  
  
  return <></>
  }
</script>
212 次点击
所在节点    问与答
1 条回复
twofox
220 天前

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/984060

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX