Componentes Vue y React en un mismo proyecto Astro

Resumen

Vue es una herramienta que puedes sumar a tu proyecto Astro para construir interfaces de usuario, igual que harías con React. La diferencia es que Vue funciona como framework y librería al mismo tiempo, lo que te da un conjunto completo de recursos listos para usar. Aquí verás cómo instalarlo, configurarlo y crear tu primer componente .vue dentro de un proyecto Astro que ya convive con otros frameworks.

¿Cómo instalar Vue en un proyecto Astro?

La instalación sigue la misma lógica que usaste con React: agregas el soporte oficial, instalas Vue y lo registras en la configuración. Detén tu entorno de desarrollo local antes de empezar para evitar conflictos durante la instalación.

Estos son los pasos concretos que ejecutas en la terminal:

  1. Instala el soporte de Astro para Vue con npm install astrojs @vue/cli 2.0.1.
  2. Instala Vue dentro del proyecto con npm install vue @vue/cli-service 3.2.47.
  3. Levanta de nuevo el entorno con npm run dev para confirmar que todo corre sin errores.

Una vez termina la instalación, vuelves al archivo astro.config y repites el paso de importación: traes vue desde astro y lo añades dentro del arreglo de integraciones. Con eso tu proyecto ya reconoce Vue como una integración válida.

¿Qué es una integración en Astro? Es un paquete que añade soporte para frameworks o herramientas externas, como Vue o React, registrándolas en astro.config para que Astro las procese al compilar.

¿Cómo crear un componente .vue dentro de Astro?

Dentro de tu carpeta components creas un nuevo archivo llamado Footer.vue. Visual Studio Code detecta la extensión y te sugiere instalar una herramienta que mejora la vista previa y la experiencia al trabajar con archivos .vue. Aceptar esa sugerencia te ahorra tiempo y te da mejor autocompletado, igual que ocurre con React y otros frameworks.

Para darle contenido al componente puedes apoyarte en colecciones de componentes Tailwind como HyperUI. Eliges un footer minimalista, copias el código y lo pegas dentro de tu archivo Vue envuelto en una etiqueta template. Recuerda que HyperUI no es la única opción: cualquier recurso construido con Tailwind funciona aquí.

¿Cómo importar el componente Vue en una ruta dinámica?

El componente se integra dentro de la estructura del slug, es decir, la ruta dinámica de cada artículo. Al escribir el nombre, el editor reconoce que existe un recurso en Vue y te ofrece importarlo automáticamente. Como en este caso el footer no recibe props ni recursos adicionales, basta con declararlo en la parte superior del documento y guardarlo.

¿Por qué no se aplican los estilos Tailwind al componente Vue?

Al renderizar el proyecto en AstroVue, el componente aparece pero sin los estilos correctos. La razón es directa: la configuración de Tailwind no sabe que ahora existen archivos .vue dentro del proyecto, así que no procesa esas clases durante el build.

¿Cómo arreglar Tailwind cuando rompe con archivos .vue? Abres el archivo de configuración de Tailwind y agregas la extensión .vue dentro del arreglo de rutas que Tailwind escanea. Con eso reconoce los componentes y aplica los estilos.

En cuanto guardas el cambio, Astro reconstruye el proyecto y el footer aparece con todos los estilos correctos. Ahí ocurre lo interesante: en una misma vista conviven un componente Vue y un componente React funcionando sin conflicto, cada uno escrito en su propio framework.

¿Qué ventajas tiene mezclar frameworks en Astro?

Astro está pensado para que combines herramientas según lo que necesite cada parte de tu interfaz. Esto te abre opciones reales en proyectos del día a día:

  • Reutilizar componentes que ya tienes escritos en React, Vue u otros frameworks sin reescribirlos.
  • Aprovechar la fortaleza de cada herramienta: Vue como framework completo, React como librería de UI.
  • Integrar librerías de componentes Tailwind como HyperUI sin importar el framework destino.

Con Vue ya funcionando junto a React en el mismo proyecto, el siguiente paso natural es sumar Svelte y ver hasta dónde llega esta convivencia. ¿Has probado mezclar frameworks en un mismo proyecto? Cuéntame en los comentarios cómo te fue.

      Componentes Vue y React en un mismo proyecto Astro