Como mencioné antes, Astra no envía JavaScript por defecto. Por lo tanto, utiliza el renderizado en el lado del servidor o el renderizado en el lado del usuario para renderizar estos componentes en la página. Lo hace eliminando todo el JavaScript al renderizar la página en el momento de la compilación y enviándote solo el marcado para que puedas usarlo con tus estilos y presentar esos datos al usuario.
Como mencioné antes, Astra admite la hidratación parcial. Por lo tanto, hay áreas donde necesitarás algo de interactividad. Lo logra proporcionando o cargando solo lo necesario para el cliente en ese momento específico. Cada componente específico tiene una cierta funcionalidad de JavaScript, como un carrusel de imágenes, una barra de búsqueda con autocompletado o incluso una barra lateral móvil. Estas son cosas que se renderizan en el cliente y aún quieres tener algo de JavaScript allí para mejorar esa experiencia.
Como mencioné antes, la arquitectura de islas es la idea de utilizar la hidratación parcial para construir sitios web completos. Esto es una alternativa al proceso común de construir un sitio web, como un paquete en JavaScript y enviar ese paquete completo al usuario, ya sea un solo paquete o tal vez algunos paquetes cargados de forma diferida. Pero aún así, todos estos componentes se cargan de forma individual para el sitio web o tal vez una pequeña aplicación web en sí. Y todas estas cosas se cargan de forma aislada, es decir, no están conectadas entre sí de ninguna manera, por lo que no tienen ninguna dependencia de lo que se necesita cargar para ellos.
Al mirar una página de ejemplo, tenemos algunas áreas distintas. Podríamos tener una cabecera donde la cabecera se carga de forma independiente en su propia isla. Una barra de navegación en el lateral que puede tener sus propios subcomponentes y el área principal para mostrar contenido en la página. Como mencioné antes, todas estas cosas se consideran islas y se cargan de forma aislada e independiente entre sí.
La arquitectura de islas o los componentes en la arquitectura de islas también hacen uso de diferentes directivas. Estas son directivas que, cuando se utilizan en los componentes, indican cuándo cargar el componente cuando la página se carga, para no cargar el JavaScript hasta que el componente esté presente en la página. O si el usuario está navegando por la página y está inactivo, entonces cargar esos componentes. Definitivamente se aprovecha de diferir eso tanto como sea posible para mostrarlo o cargar ese JavaScript para el usuario.
Entonces, ¿qué significa esto en términos de BYO JS que he estado mencionando durante esta charla? BYO JS significa traer tu propio framework de JavaScript, incluido allí. Y Astro lo hace a través de integraciones. Astro es diferente porque puedes utilizar tus conocimientos existentes de tu framework elegido y Astro sabe cómo integrarse con esos frameworks web y renderizar esos componentes en la página de forma estática. Y agregar interactividad a esos componentes más tarde cuando lo necesites en el cliente, por lo que obtienes lo mejor de ambos mundos.
Astro admite casi todos los frameworks comúnmente utilizados que admiten componentes, como React, Vue, Svelte, Solid y más. Hay más que solo mencioné aquí. También tienen APIs que te permitirían integrar cualquier framework de JavaScript en una aplicación de Astro. Puedes obtener más información sobre el proyecto Astro en astro.build. Puedes leer más en la documentación, aprender más sobre las integraciones y ver cómo puede ayudarte a construir sitios web más rápido. Así que definitivamente échale un vistazo. En resumen, hablé sobre la historia y evolución de la construcción de aplicaciones web, utilizando el renderizado en el lado del servidor, el lado del cliente y las aplicaciones y frameworks. Hablé sobre la próxima ola de frameworks web, algunos de los cuales están disponibles hoy en día, como el uso de Jamstack y otras herramientas en ese espacio. Y hablé sobre el proyecto Astro. Puedes obtener más información sobre Astro en astro.build para leer más sobre la documentación y obtener más información o incluso participar en el proyecto.
Comments