首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Vue 3中,Vue组件属性的正确类型是什么?

在Vue 3中,Vue组件属性的正确类型是什么?
EN

Stack Overflow用户
提问于 2022-09-23 13:30:56
回答 1查看 40关注 0票数 0

我们的一些组件使用其他组件作为属性。

一个简单的例子:<my-interface-component :popup="myPopup"/>

其中,myPopup将是一个具有open方法的组件,该方法允许使用消息打开这个外部弹出组件。

在Vue 2中,我们常常像这样设置这个属性:

代码语言:javascript
复制
  /**
   * @prop {Vue} popup A root popup component to use
   */
  popup: {
    type: Vue
  },

我们可以给出组件定义或现有组件引用。

但是在Vue 3中不再存在这样的Vue对象。我应该只使用Object还是有更明确的方法?

我们使用Vue 3的CDN版本和Vanilla JS。

非常感谢

EN

回答 1

Stack Overflow用户

发布于 2022-09-23 13:59:25

组件的正确类型是ComponentOptions|ComponentOptions['setup'],它被简化为可读性,如前面提到的这里

代码语言:javascript
复制
import {ComponentOptions, PropType } from 'vue'

props:{
  popup: {
    type: Object as PropType<ComponentOptions|ComponentOptions['setup']>
  },

}

但是,建议将组件/元素作为插槽传递,而不是作为道具:

儿童部分:

代码语言:javascript
复制
<template>
  <div>
    <slot name="popup" />
  </div>
</template>

在父母中:

代码语言:javascript
复制
<template>
 <div>
    <template #popup>
       <MyPopup />
    </template>
 </div>
</template>
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73828498

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档