Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

227
Vistas
¿Cómo permitir exportaciones múltiples desde un componente de archivo único Vue3?

Estoy haciendo un componente de archivo único Vue3 para una lista personalizada. En mi componente de archivo único, quiero exportar el componente principal predeterminado de Vue, pero también la enumeración que declara qué tipo de lista es:

niño:

 <template> <Listbox> <template #header> <h5>{{listType}}</h5> </template> </Listbox> </template> <script lang="ts"> export enum PagesListType { RecentlyCreated = 'Recently Created', RecentlyModified = 'Recently Modified', Starred = 'Starred' }; export default { props: { listType: PagesListType }, data() { return { pages: [], PagesListType }; }, }; </script>

La enumeración solo tiene sentido dentro del contexto de este componente, por lo que no quiero ponerlo en otra carpeta de tipos. Solo se relaciona con el comportamiento de esta lista. Pero cuando trato de hacer esto en el componente principal, falla:

padre:

 <template> <div> <PagesList :listType="PagesListType.RecentlyCreated"></PagesList> <PagesList :listType="PagesListType.RecentlyModified"></PagesList> <PagesList :listType="PagesListType.Starred"></PagesList> </div> </template> <script lang="ts"> import PagesList, { PagesListType } from './PagesList.vue'; export default { //parent component details }; </script>

Cuando importo la enumeración PagesListType nombrada, simplemente no está definida. ¿Qué debo hacer para exportar la enumeración nombrada correctamente? ¡Gracias!

about 4 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

Creo que necesita exportar la enum en un archivo separado e importarlo en diferentes archivos para usarlo. Dónde coloque este archivo depende principalmente de usted, cómo desea estructurar su proyecto.

Por ejemplo, el archivo types.ts en la carpeta src puede definir y exportar la enumeración como:

 export enum PagesListType { RecentlyCreated = 'Recently Created', RecentlyModified = 'Recently Modified', Starred = 'Starred' }

puede usar la enumeración en cualquier lugar importándola como:

 import { PagesListType } from '@/types';

tienes que usar @/ en lugar de src/. debido a la carpeta src a @ en su configuración de TypeScript disponible en el archivo tsconfig.json.

about 4 years ago · Juan Pablo Isaza Denunciar

0

Pude hacer que esto funcionara al no exportar la enumeración, sino agregarla como una propiedad al componente predeterminado exportado:

niño:

 enum PagesListType { RecentlyCreated = 'Recently Created', RecentlyModified = 'Recently Modified', Starred = 'Starred' }; export default { props: { listType: PagesListType }, PagesListType, data() { return { pages: [], PagesListType }; }, };

padre:

 <template> <div> <PagesList :listType="created"></PagesList> <PagesList :listType="modified"></PagesList> <PagesList :listType="starred"></PagesList> </div> </template> <script lang="ts"> import PagesList from './PagesList.vue'; export default { computed: { created() { return PagesList.PagesListType.RecentlyCreated; }, modified() { return PagesList.PagesListType.RecentlyModified; }, starred() { return PagesList.PagesListType.Starred; } }, //other parent implementation details omitted }; </script>
about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda