Ampliando React utilizando Astro

Rate this content
Bookmark

Comenzaremos echando un vistazo a Astro; ¿Qué es Astro, por qué existe y qué problemas resuelve? ¿Cómo podemos optimizar nuestra aplicación / componentes de React utilizando Astro? ¡Hagamos algo de codificación en vivo y comencemos a explorar Astro en combinación con React!

Puntos principales de la charla:

- ¿Qué es Astro

- Integraciones de Astro

- React en Astro

- Hidratación parcial

- Renderizado del lado del servidor vs Generación del lado del servidor

This talk has been presented at React Summit 2023, check out the latest edition of this React Conference.

FAQ

Astro es un marco de trabajo todo en uno diseñado para la velocidad, que permite integrar y utilizar diversos frameworks de UI dentro de un mismo proyecto. Es conocido por su capacidad de traer tu propio framework de UI y optimizar la carga de JavaScript para mejorar el rendimiento y SEO.

Astro se destaca por su capacidad de optimizar la entrega de JavaScript, permitiendo un mejor SEO y rendimiento al enviar solo el JavaScript necesario. Además, su arquitectura de 'islas' permite una gran flexibilidad en el desarrollo y la integración con diversos frameworks de UI.

La configuración del proyecto Astro se realiza en el archivo `astro.config.js`. La estructura del proyecto incluye directorios separados para componentes, páginas y layouts dentro de la carpeta 'source', utilizando enrutamiento basado en archivos para la organización de las rutas.

La hidratación parcial en Astro es una técnica que permite activar JavaScript solo en los componentes que necesitan ser interactivos, en lugar de en toda la página. Esto se logra mediante directivas del cliente, como `client:load`, `client:visible` y `client:media`, optimizando así el rendimiento y la carga de la página.

Para iniciar un nuevo proyecto en Astro, se utiliza la CLI de Astro donde puedes crear un proyecto nuevo con comandos como `astro new`. Durante la configuración, se te preguntará sobre el uso de plantillas y configuraciones adicionales como TypeScript, y se instalarán las dependencias necesarias.

Las directivas del cliente en Astro son configuraciones que se añaden a los componentes para controlar cómo y cuándo se debe cargar y activar el JavaScript. Esto permite optimizar la interactividad de los componentes según sea necesario, mejorando el rendimiento y la experiencia del usuario.

Elion puede ser seguido en línea a través de su usuario de Twitter, ElionCodes, donde es más activo. También mencionó estar disponible para contacto en otras plataformas online donde pueda ser encontrado.

Para integrar React en Astro, se utiliza el comando `astro add react` que configura automáticamente las dependencias necesarias y ajusta la configuración del proyecto para soportar componentes de React.

Elian Van Cutsem
Elian Van Cutsem
24 min
06 Jun, 2023

Comments

Sign in or register to post your comment.
Video Summary and Transcription
Astro es un marco de trabajo todo en uno construido para la velocidad que permite flexibilidad y personalización. Admite enrutamiento basado en archivos, páginas dinámicas y una fácil integración con marcos populares como React. Las directivas del cliente de Astro permiten la hidratación selectiva y la optimización de sitios web. También admite la obtención de datos de APIs y el uso de Markdown. Con características como preprocesadores de estilos, soporte CSS y adaptadores de implementación, Astro se destaca como un marco de trabajo para SEO, experiencia de desarrollo y rendimiento.
Available in English: Extending React Using Astro

1. Introducción a Astro

Short description:

¡Hola a todos, gracias por sintonizar! Soy Elion, un ingeniero de software en Veebridge en Bélgica y un Embajador y Mantenedor de Astro. Hoy les presentaré Astro, un marco de trabajo todo en uno construido para la velocidad. Exploraremos la arquitectura de Astro Island y cómo se puede utilizar con React. Comencemos con un ejemplo teórico. En Astro, puedes traer tu propio marco de trabajo, lo que permite flexibilidad y personalización. ¡Visita el sitio web de Astro para todas las integraciones oficiales y no oficiales. Estén atentos para la integración con React en las siguientes diapositivas!

¡Hola a todos, y gracias por sintonizar mi charla para React Semi 2023. Soy Elion, soy un ingeniero de software en Veebridge en Bélgica, y por un corto tiempo también he sido un Embajador de Astro y ahora también soy un Mantenedor de Astro.

Y hoy les voy a hablar sobre Astro. Así que si quieres seguirme en línea, o contactarme si tienes alguna pregunta, puedes hacerlo en ElionCodes, soy más activo en Twitter, así que sería lo más fácil, pero siéntete libre de contactarme en cualquier lugar donde me encuentres, ¿de acuerdo?

Ahora que sabes quién soy, comencemos con la pregunta de toda esta charla, que es, ¿qué es Astro? Bueno, Astro no es solo un marco de trabajo súper rápido, en realidad es incluso mejor que esos que son increíblemente rápidos. Me gusta llamarlo astronómicamente rápido. Entonces, en resumen, Astro es este marco de trabajo todo en uno construido para la velocidad, y eso puede sonar como una caja vacía en este momento, pero te prometo que se aclarará en las siguientes diapositivas por qué digo eso.

Entonces, mi objetivo para hoy es presentarte la arquitectura de la Isla de Astro y mostrarte cómo se puede utilizar con React, para que puedas ampliar las capacidades de React con Astro. Así que, permíteme comenzar mostrándote un ejemplo teórico. Así que, toma esta página por ejemplo. Podemos dividir todas estas estructuras HTML en bloques, ¿lo ves como una base de Lego? Con bloques agregados a la base, y en esos bloques, bloques pequeños, y en total, tú entiendes la idea.

Ya hacemos esto en un par de frameworks por ahí. Bueno, la mayoría de los frameworks de UI en realidad, como Dittsveld, Vue, Solider, React. Estamos familiarizados con este diseño de componente. Pero en Astro, en realidad puedes hacer algo como esto. Bueno, es teóricamente posible, no se recomienda, se aclarará por qué. Pero puedes elegir diferentes colores o sabores para cada ladrillo, refiriéndote al color como el marco de trabajo de UI. Por ejemplo, si quieres que un componente sea solo JS, o si quieres un componente en Svelte, puedes hacerlo con Astro. Entonces, por eso llamamos a Astro un trae tu propio marco de trabajo. Entonces, Astro es en realidad un marco de trabajo que te permite traer tu propio marco de trabajo a él, lo cual significa que puedes traerlo y te mostraré eso en las siguientes diapositivas. Por ejemplo, todas las integraciones se pueden verificar en el propio sitio web de Astro. Hay una página completa dedicada a todas las integraciones, todas las integraciones oficiales y no oficiales existentes. Y, como puedes ver, sintonizaste un evento que se trata principalmente de React. Así que te mostraré cómo se ve la integración con React en las siguientes diapositivas. Pero, antes de sumergirnos en React con Astro, por supuesto que tenemos que comenzar un nuevo proyecto de Astro. Así que, déjame entrar en la terminal aquí y mostrarte cómo se ve nuestra CLI. Puedes usar cualquier administrador de paquetes que te guste. Me gusta usar pnpm. Pero siéntete libre de usar npm o Yarn. Entonces, simplemente creas algo nuevo y luego ves Houston.

Read also

2. Configuración de un Nuevo Proyecto y Estructura de Archivos de Astro

Short description:

Houston, nuestra mascota, nos guiará a través de la configuración de un nuevo proyecto en Astro. Responderemos algunas preguntas, instalaremos dependencias y consideraremos TypeScript. Una vez configurado, podemos abrir el proyecto en VS Code, con soporte para archivos de Astro. La sintaxis es similar a HTML con algo de JSX. Antes de sumergirnos en ejemplos de código, exploremos la estructura de archivos de Astro, que es similar a otros meta frameworks como Next o Nuxt. Astro admite enrutamiento basado en archivos y páginas dinámicas.

Sí, ahí está. Entonces, Houston es nuestra mascota y nos guiará a través del proceso de configuración de un nuevo proyecto dentro de nuestra terminal. Entonces, te hará algunas preguntas. Por ejemplo, ¿cuál es tu proyecto? ¿Quieres usar una plantilla? Lo cual no quiero. Y luego, por supuesto, instalará tus dependencias y te preguntará si quieres usar TypeScript.

Mientras esperamos, incluso si no usas TypeScript o no te gusta, bueno, si no quieres usar TypeScript o escribir tu propio TypeScript, bueno, Astro seguirá utilizando algo de TypeScript en el backend, lo cual no tendrás que preocuparte, pero debes saber que todavía hay algo de seguridad de tipos sucediendo. Así que elegiré estricto aquí solo para mostrarte cómo funciona y cosas así. De acuerdo, genial. Así de fácil es configurar un nuevo proyecto en Astro. Realmente genial.

Entonces, tal vez abramos nuestro proyecto en VS Code. Sí, ahí vamos. Entonces, para obtener soporte para los archivos de Astro en VS Code, aún debes instalar una extensión separada. Es una integración muy buena, es oficial, así que no te preocupes por eso. Todo lo demás debería funcionar sin problemas. Pero como puedes ver, echemos un vistazo a la sintaxis aquí. Entonces, la sintaxis se siente bastante familiar. Parece algo intermedio. Bueno, en realidad, se parece a HTML regular con algunos fragmentos de JSX en el medio. Pero la mayor parte de lo que podemos ver ahora mismo es HTML. Pero entraré en eso un poco más tarde.

Porque antes de sumergirnos en nuestros ejemplos de código, quiero que eches un vistazo a la estructura de archivos de Astro, porque es muy importante saber de qué es capaz Astro. No hay nada demasiado extraño sucediendo aquí. Tu configuración se realiza en el archivo astro.config.js. Tus componentes y páginas y diseños van en sus directorios separados dentro de la carpeta source. Todo eso debería tener sentido si alguna vez has usado un meta framework como Next o Nuxt antes. Astro tiene enrutamiento basado en archivos, por lo que cada archivo dentro de la carpeta de páginas responderá a su propia página o ruta. Puedes ver que dentro del blog hay un id entre corchetes, eso es una página dinámica, por lo que también es capaz de hacer eso. Y también tenemos la página 404. Pero como puedes ver, también hay una pequeña pista al componente allí, que se llama counter.tsx.