Astro & Fresh - Comprendiendo la Arquitectura de Islas

This ad is not shown to multipass and full ticket holders
React Summit US
React Summit US 2025
November 18 - 21, 2025
New York, US & Online
The biggest React conference in the US
Learn More
In partnership with Focus Reactive
Upcoming event
React Summit US 2025
React Summit US 2025
November 18 - 21, 2025. New York, US & Online
Learn more
Bookmark
Rate this content

Una introducción a la emergente arquitectura de islas que puede mejorar significativamente el rendimiento de tus aplicaciones.

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

FAQ

La arquitectura de islas es una forma emergente de construir sitios web que permite desarrollar páginas con poco o incluso sin JavaScript, enfocándose en mejorar la carga y la interactividad de ciertas partes de la página independientemente del resto.

Las bibliotecas líderes que implementan la arquitectura de islas son Astro y Fresh.

El renderizado en el lado del servidor permite cargar algunas partes de la aplicación como HTML y servirlas directamente a los usuarios, lo que mejora el SEO y reduce los tiempos de carga al no depender completamente de JavaScript y la hidratación del lado del cliente.

La hidratación es un proceso en el desarrollo web donde una página HTML servida inicialmente por el servidor se vuelve interactiva mediante la adición de JavaScript. Este proceso permite que los elementos interactivos comiencen a funcionar después de que la página ha sido cargada.

La hidratación completa implica cargar todo el JavaScript necesario para la página de una sola vez, mientras que la hidratación parcial solo carga JavaScript para componentes específicos cuando es necesario, lo cual es más eficiente y rápido.

Optimizar un sitio web con arquitectura de islas implica identificar componentes que no necesitan JavaScript y servirlos como HTML estático, mientras que para los componentes dinámicos se carga JavaScript de manera selectiva y solo cuando es necesario.

Astro permite a los desarrolladores construir sitios web usando la arquitectura de islas, donde se pueden crear 'islas' de interactividad que cargan su propio JavaScript de manera independiente, mejorando la performance y la interactividad del sitio.

Arpit Bharti
Arpit Bharti
21 min
24 Oct, 2022

Comments

Sign in or register to post your comment.
Video Summary and Transcription
La arquitectura de islas es una nueva forma de construir sitios web con poco o ningún JavaScript, utilizando bibliotecas como Astro y Fresh. La representación en el servidor mejora el SEO y los tiempos de carga, pero aún puede resultar en grandes cargas de JavaScript. La hidratación permite islas de interactividad, cargando solo el JavaScript necesario. Astro es un marco para implementar la arquitectura de islas, que admite múltiples bibliotecas como React y SolidJS. Permite la migración progresiva entre marcos e integración de diferentes bibliotecas en el mismo proyecto.

1. Introducción a la Arquitectura de Islas

Short description:

La arquitectura de islas es una nueva forma emergente de construir sitios web con poco o ningún JavaScript, utilizando bibliotecas como Astro y Fresh. Estos sitios web se pueden dividir en sitios impulsados por contenido y sitios impulsados por datos, cada uno con diferentes necesidades y escala. Las bibliotecas de componentes como React, Vue, Svelt y SolidJs se han vuelto populares para construir estos sitios web, ofreciendo composabilidad, reutilización y facilidad de eliminación. Sin embargo, son bibliotecas del lado del cliente, lo que puede causar problemas con la indexación de motores de búsqueda y resultar en grandes cargas de JavaScript.

Hola a todos. Quiero hablar sobre la arquitectura de islas hoy. Es una nueva forma emergente de construir sitios web que te permite construir sitios web con poco o incluso sin JavaScript. Las bibliotecas líderes en esto son Astro y Fresh. Intentaré hacer una demostración de Astro en esta charla y exploraremos cómo implementa la arquitectura de islas.

Pero antes de llegar allí, quiero sentar las bases de por qué existe algo como la arquitectura de islas y cómo llegamos a este punto. Así que un poco sobre mí, mi nombre es Arpit. Puedes encontrarme en línea. Trabajo en el espacio de Web 3.0 para un protocolo DeFi y comencemos.

Entonces, pensemos en el tipo de sitios web que estamos acostumbrados a construir. Construimos blogs, documentaciones o aplicaciones muy impulsadas por datos, algo como Facebook que tiene mucha información para mostrar al usuario. Podemos dividirlos en dos tipos diferentes de sitios web: sitios web impulsados por contenido y sitios web impulsados por datos. Ambos tienen diferentes necesidades y diferentes tipos de escala que están tratando de lograr y debemos intentar usar la herramienta correcta para el trabajo.

Entre ellos, tenemos de todo. Como dije, sitios web impulsados por contenido y sitios web impulsados por datos. Pero esto no es una cosa de elegir uno u otro. Hay algunos sitios web que tendrán mucho contenido en una página, pero la otra página será principalmente estática y nada más. La razón por la que menciono esto es que estamos acostumbrados a construir muchos de estos con las mismas herramientas. Y esas herramientas son bibliotecas de componentes que se han vuelto muy populares en la última década más o menos. La más popular es React, pero algunos de ustedes pueden estar usando Vue, Svelt o SolidJs. Los beneficios de estos son que son componibles. Puedes combinarlos en diferentes componentes. Puedes reutilizarlos en toda tu aplicación. Incluso en sistemas de diseño, puedes usar tipos similares de componentes en diferentes plataformas incluso. Por lo general, son fáciles de escribir, especialmente si los escribes en pequeños fragmentos. Son muy fáciles de eliminar. La cosa sobre estas bibliotecas es que todas son bibliotecas del lado del cliente. Por lo general, no renderizan nada en el servidor. Debido a esto, tienes un problema y los motores de búsqueda no pueden indexar fácilmente tus sitios web. También entregan una carga de JavaScript grande porque tienes que servir tu propio JavaScript junto con la biblioteca en sí.

2. Server-side Rendering and Downsides

Short description:

Las desventajas de no servir HTML son que resulta en tiempos de carga lentos y un panel de contenido grande llamado LCP. Para resolver esto, se utiliza el renderizado en el lado del servidor, con frameworks como Next.js y Nuxt. El renderizado en el lado del servidor te permite renderizar algunas partes de tu aplicación como HTML, mejorando el SEO y reduciendo los tiempos de carga. Sin embargo, aún puede resultar en servir una carga de JavaScript grande.

Junto con eso, no sirves ningún HTML. Por lo tanto, tienes todas las desventajas sin ninguna de las ventajas. La principal es que hay un panel de contenido grande llamado LCP, que es lento. Esto significa que tarda mucho tiempo en que el contenido sea visible para los usuarios.

La forma en que resolvemos esto en la industria es utilizando el renderizado en el lado del servidor. Todas estas bibliotecas tienen sus propios frameworks. React tiene Next, Vue tiene Nuxt, y todos ellos se basan en algo nuevo. Los beneficios son que renderizas algunas partes de tu aplicación como HTML y lo sirves a los usuarios. La obtención de datos puede ocurrir en el servidor. Con Next.js, puedes obtener datos una vez cuando se construye la aplicación, o cada vez que el usuario accede, que es lo que hace su función getServerSideProps. Esto permite un buen SEO para ti, porque junto con JavaScript también estás sirviendo HTML, y tiene un LCP más rápido. Un problema con esto es que aún sirves una carga de JavaScript muy grande que es posible que no necesites realmente. Estos frameworks dependen principalmente de la hidratación de la página completa.

3. Hydration and Islands of Interactivity

Short description:

La hidratación consiste en servir una página HTML junto con un archivo JavaScript para hacerla interactiva. Sin hidratación significa servir solo HTML, mientras que la hidratación de página completa carga todo el JavaScript para la página completa. La hidratación parcial permite que los componentes carguen solo el JavaScript necesario. Esto permite la creación de islas de interactividad, donde cada elemento es responsable de cargar sus propios datos. Al identificar qué partes de la aplicación no necesitan JavaScript, se puede evitar el JavaScript innecesario. Smashing Magazine sirve la mayor parte del contenido en el servidor, pero utiliza JavaScript para funciones interactivas como la búsqueda.

Lo que quiero hablar a continuación es de la hidratación. La hidratación consiste básicamente en servir una página HTML y junto con eso servir un archivo JavaScript y hacerla interactiva. El HTML mostrará algunos datos en la pantalla o algún contenido en la pantalla mientras el JavaScript se carga y después de que el JavaScript se carga, hará que tu contenido sea interactivo agregando listeners de eventos, agregando listeners de clic, por ejemplo. Todo lo que harías con JavaScript, esto es lo que es la hidratación.

En este momento, pensarías en la hidratación como sin hidratación o hidratación de página completa. Sin hidratación es simplemente que tu servidor renderiza algo de HTML y lo sirve a los usuarios y eso puede llevarte bastante lejos. Solo HTML y CSS te llevarán bastante lejos, pero necesitarás algo de JavaScript más adelante. Entonces, la forma en que estos frameworks permiten esto es cargar todo el JavaScript para la página completa de una vez y luego el framework que estás utilizando cargará y se hará cargo de todo el sitio web y será responsable de la renderización, cualquier renderización que ocurra. Así que hay un punto intermedio entre esto que es la hidratación parcial. Entonces, cuando estás escribiendo un framework basado en componentes, puedes pensar en algunos componentes que cargarán solo HTML y algunos componentes que cargarán su JavaScript que necesitan junto con el HTML. Lo que esto te permite hacer es crear islas de interactividad. Lo que esto significa es que tendrás múltiples elementos en tu página que son responsables de cargar sus propios datos y esto significa que tu aplicación es básicamente una colección de muchas aplicaciones o muchas islas que cargan sus propios datos y son responsables de renderizarse a sí mismas básicamente.

Así que tomemos un ejemplo, por ejemplo, y tenemos un diseño básico para un sitio web. Es posible que desees tener un encabezado, contenido de texto, un carrusel de imágenes y un pie de página. Probablemente no necesites que todos estos se rendericen a través de React o algo así. Puedes renderizar algunos de estos en el servidor y no necesitas cargar el JavaScript para eso en absoluto. Debes identificar qué parte de tus aplicaciones no necesita JavaScript en absoluto y luego servir eso básicamente. Por ejemplo, un encabezado puede tener una barra de búsqueda, una barra lateral puede tener cierta interactividad y el carrusel de imágenes tendrá listeners de clic. Entonces, necesitan algún tipo de JavaScript que puedan cargar y habrá islas que cargarán JavaScript para sí mismas. Y el pie de página y el contenido principal de texto, es posible que realmente no necesiten JavaScript. No tiene sentido escribir un componente de React para ellos y cargar ese JavaScript de vuelta al usuario cuando realmente no lo necesitan.

Un ejemplo que también quiero mencionar es Smashing Magazine. Mira este sitio web. Todo lo que ves aquí se puede renderizar en el servidor y probablemente no necesitas nada que necesite interactuar con él. Todos estos son enlaces y hacer clic en enlaces es una característica que el navegador te brinda de forma gratuita básicamente. Pero la entrada. Si busco async await aquí, esto está ejecutando alguna consulta de búsqueda en segundo plano y todo esto es posible gracias a algún JavaScript. No puedes deshacerte de él por completo. Entonces, la forma ideal sería renderizar todo esto en el servidor e inyectar algún tipo de JavaScript. Esta barra de búsqueda en sí misma sería una isla de interactividad donde carga solo el JavaScript que necesita.

4. Implementación de la arquitectura de islas con Astro

Short description:

La implementación de la arquitectura de islas implica el uso del marco de trabajo Astro, que es astro.build. Para ejecutar una demostración, puedes utilizar el asistente de configuración ejecutando 'pnpm create astro'. Después de configurar el proyecto, puedes ejecutarlo utilizando el comando 'pnpm dev'. Sin embargo, al acceder a la aplicación en localhost:3000, es posible que inicialmente no veas nada renderizado. Esto se debe a que Astro sigue una estructura de enrutamiento basada en archivos y es necesario renderizar componentes específicos para ver el contenido deseado.

Entonces, eso es la hidratación parcial y eso nos lleva a la implementación de la arquitectura de islas architecture y la hidratación parcial. Entre eso, quiero hablar sobre astro que es astro.build. Esta biblioteca es un marco de trabajo para implementar la arquitectura de islas. Veamos una demostración de esto. ¿Cómo lo hacemos? Ejecutamos el asistente de configuración. Entonces, pnpm create astro. Vamos. Llamémoslo test. Test no está vacío. Wow. Llamémoslo test uno. Hagamos lo básico. ¿Te gustaría instalar? No lo hagamos ahora mismo. Sin repositorio git. Y realmente me gusta TypeScript con tipos estrictos. Genial. De hecho, ya había creado una demostración de Astro para esto. Así que vamos a ver qué obtenemos. Lo siento, queremos ver esto en acción. ¿Cómo ejecutamos esto? Hay algunos scripts. Vamos a ejecutar el script dev pnpm dev. Y lo siento. Vamos a localhost. Esto es 3000. Y aún no vemos nada. ¿Por qué no vemos nada? Una cosa sobre esto, sigue el enrutamiento con archivos de página, enrutamiento basado en archivos. Así que ahora vemos que no estamos renderizando nada. Veamos qué sucede cuando renderizamos nuestro componente hello.

5. Explorando dot astro y construyendo un Contador React

Short description:

La extensión de archivo dot astro viene con su propio marco de componentes y modelo de renderizado. El código JavaScript dentro del archivo se ejecuta en el servidor y se convierte en HTML antes de ser enviado al usuario. Esto permite utilizar Astro como un formato de plantilla, similar a PHP. Otro ejemplo es construir un contador de React utilizando useState para incrementar y decrementar un valor. Los componentes de React se pueden importar en archivos de Astro.

Dice hola, soy Arpit. ¿Cómo estás? Bien, exploremos qué es este componente hello. También presta atención a cuál es la extensión de archivo. Es dot astro. Entonces dot astro viene con su propio marco de componentes y modelo de renderizado de componentes, básicamente. Por lo tanto, puedes ejecutar JavaScript en esta área aquí mismo, y debajo de eso habrá un componente de archivo único que puedes exportar e importar en otros archivos de componentes, básicamente.

Entonces quiero renderizar en un H1 con el nombre, y esto es JSX, al igual que React, como muchos de ustedes pueden estar familiarizados. Si actualizo esto a algo como esto, actualizado, genial. Como puedes ver, esto es realmente rápido, así que es bueno que también implementen una actualización rápida. Una cosa, entonces este JavaScript, ¿dónde se ejecuta? Imprimió hola aquí, pero ¿se imprimió aquí? No lo hizo. Parece que este componente Azure solo se ejecuta en el servidor. Entonces en realidad no enviaste ninguno de estos JavaScript al usuario. Esto se convierte en HTML y luego se envía al usuario. Esto significa que puedes usarlo como un formato de plantilla, donde puedes hacer una búsqueda de... Fetch algo desde tu base de datos, básicamente. Y eso se ejecutaría como PHP. Hay una broma en la comunidad de Astro que dice que Astro es solo PHP, donde buscas todos tus datos aquí y renderizas plantillas. Y eso es en cierto modo verdad, realmente.

Veamos algunos otros ejemplos. Quiero construir un contador, un ejemplo interactivo de lo que debería suceder aquí. Comentemos esto. Quiero construir un contador de react, que básicamente agregará un botón de incremento y un botón de decremento. Entonces, un ejemplo simple, useState, lo incrementaremos con add, lo decrementaremos con subtract. Y veamos qué hace esto. En un archivo de Astro, puedo importar componentes React. Esto es realmente asombroso. Entonces, veamos cómo funciona esto. Componentes, contador react, punto, ¿necesito? Probablemente no. Sí. Muy bien.

6. React Counter y Astro Framework

Short description:

En Astro.build, JavaScript no se envía por defecto. JavaScript se puede habilitar utilizando directivas del cliente, como client load, idle, media y client-visible. Astro es un marco de múltiples componentes que admite la integración de React y Tailwind. Otros marcos como alpinejs, lit, preact y vue también son compatibles con Astro.

¿Qué pasó? Contador React. Estoy haciendo clic en él, pero no pasa nada. ¿Por qué es eso? Esto es extraño. ¿Está roto? No. Entonces, la cosa es que esto no es un error, es más bien una característica, en Astro.build, no enviamos JavaScript por defecto. Entonces, ¿qué significa eso? ¿Cómo habilitas JavaScript entonces? Porque estamos usando React, obviamente, queremos enviar JavaScript, no funciona sin JavaScript.

Por defecto, vemos que se renderizó lo que sea que fuera la salida, por defecto, lo que se renderizaría en el servidor, podemos habilitar JavaScript mediante estas directivas, estas directivas del cliente. Entonces, ¿qué es esta carga del cliente? Esto significa que JavaScript se cargará junto con la página cuando se cargue toda la página. Entonces, ahora si hago clic en él, ahora funciona. Eso es increíble, ¿verdad? Entonces, JavaScript solo se carga cuando lo necesitas. Esto significa que también hay otras directivas. Idle, significa que tan pronto como pueda comenzar a cargarse, básicamente. Media es, puedes cargar JavaScript condicionalmente, si estás en un dispositivo móvil, solo se cargará ese componente en el móvil, si estás en un escritorio, solo se cargará ese componente en el escritorio. Esto es lo mismo que las variables CSS. Luego, client-visible, utiliza internamente algo llamado observador de intersección para observar si el componente está en pantalla o no, y si está en pantalla, solo cargará el JavaScript en ese momento. Entonces, si estás construyendo una página de destino muy grande, por ejemplo, y tienes que seguir desplazándote y desplazándote, pero también quieres que la página de destino se cargue muy rápidamente, puedes habilitar algo como esto donde el HTML se cargará y se renderizará muy rápidamente, y el JavaScript se cargará progresivamente cuando el componente entre en la vista. Entonces, por ahora queremos mantenerlo en carga.

Otra cosa sobre Astro es que es un marco de múltiples componentes, como habrás visto, componente sólido y un componente hinchado aquí. Entonces, sí, veamos cómo funciona eso. Puedes renderizar varios de estos componentes en Astro, incluso en el mismo archivo, de hecho. Veamos cómo sucede esto, por cierto. Entonces, astro.config, estamos cargando React y Tailwind aquí. Como habrás notado, estoy usando Tailwind aquí. Esto hace que Astro pueda manejar componentes de React y componentes de Tailwind. Entonces, veamos cómo funcionan estas integraciones. Astro tiene integraciones para todos estos frameworks, alpinejs, lit, preact, vue que no estamos cubriendo aquí. Pero veamos cómo agregamos estos. Entonces, npx astro add-react, okay. Tengo un componente sólido y un componente hinchado escritos aquí. Veamos si podemos agregar esto.

7. Agregando Múltiples Bibliotecas con Astro

Short description:

Astro permite agregar múltiples bibliotecas como SolidJS, SwellJS y ReactJS a la configuración automáticamente. Permite ejecutar componentes de React y Solid juntos en la misma página. Esta flexibilidad es beneficiosa para aplicaciones grandes con múltiples equipos trabajando en diferentes proyectos y utilizando diferentes frameworks. Permite una migración progresiva de un framework a otro reemplazando componentes. AstroJS permite la integración de SolidJS, ReactJS y SwellJS en el mismo proyecto.

Astro add, veamos si podemos agregar múltiples de estos. Solidjs y swelled. Vamos. Sí, sí, ya, vean qué inteligente fue esto. Así que agregó solidjs y swelled a nuestra configuración automáticamente cuando hicimos un astro add. Así que veamos un componente sólido aquí.

Solidjs es muy similar a react. Así que creamos una señal. Creamos una función de suma y una función de resta y esto se verá casi exactamente igual excepto que el contador será una llamada a función. Y veamos. Oh, no lo importamos. Importémoslo. Contador sólido. Vean qué increíble es esto. Estamos ejecutando un componente React y un componente sólido en la misma página. Vamos un paso más allá.

Este también es un componente swelled que escribí. Lo mismo, una función de suma, una función de resta, solo incrementamos de manera diferente aquí, adjuntamos nuestros controladores de clic y importamos, digamos, solid. ¿Por qué son impresionantes múltiples bibliotecas? Imaginen que están construyendo una aplicación realmente grande, donde múltiples equipos están trabajando en diferentes tipos de aplicaciones y tienen diferentes necesidades, podrían estar trabajando en dos proyectos diferentes y un equipo quiere usar React y otro equipo quiere usar Solid, y teóricamente podrían hacerlo, bueno, en realidad ahora pueden hacerlo, y lo mismo con cualquier otro framework, y digamos que quieres migrar lentamente de una base de código basada en React a una base de código basada en Solid, podrías reemplazar progresivamente cada uno de los componentes que tienes y pasar a un framework diferente, básicamente. Sí, esto es SolidJS. Esto es ReactJS. Esto es SwellJS. En la misma cosa, habilitado por AstroJS, y eso es todo. Adiós.

Check out more articles and videos

We constantly think of articles and videos that might spark Git people interest / skill us up or help building a stellar career

Una Guía del Comportamiento de Renderizado de React
React Advanced 2022React Advanced 2022
25 min
Una Guía del Comportamiento de Renderizado de React
Top Content
This transcription provides a brief guide to React rendering behavior. It explains the process of rendering, comparing new and old elements, and the importance of pure rendering without side effects. It also covers topics such as batching and double rendering, optimizing rendering and using context and Redux in React. Overall, it offers valuable insights for developers looking to understand and optimize React rendering.
Escalando con Remix y Micro Frontends
Remix Conf Europe 2022Remix Conf Europe 2022
23 min
Escalando con Remix y Micro Frontends
Top Content
This talk discusses the usage of Microfrontends in Remix and introduces the Tiny Frontend library. Kazoo, a used car buying platform, follows a domain-driven design approach and encountered issues with granular slicing. Tiny Frontend aims to solve the slicing problem and promotes type safety and compatibility of shared dependencies. The speaker demonstrates how Tiny Frontend works with server-side rendering and how Remix can consume and update components without redeploying the app. The talk also explores the usage of micro frontends and the future support for Webpack Module Federation in Remix.
Construyendo Mejores Sitios Web con Remix
React Summit Remote Edition 2021React Summit Remote Edition 2021
33 min
Construyendo Mejores Sitios Web con Remix
Top Content
Remix is a web framework built on React Router that focuses on web fundamentals, accessibility, performance, and flexibility. It delivers real HTML and SEO benefits, and allows for automatic updating of meta tags and styles. It provides features like login functionality, session management, and error handling. Remix is a server-rendered framework that can enhance sites with JavaScript but doesn't require it for basic functionality. It aims to create quality HTML-driven documents and is flexible for use with different web technologies and stacks.
No resuelvas problemas, elimínalos
React Advanced 2021React Advanced 2021
39 min
No resuelvas problemas, elimínalos
Top Content
Kent C. Dodds discusses the concept of problem elimination rather than just problem-solving. He introduces the idea of a problem tree and the importance of avoiding creating solutions prematurely. Kent uses examples like Tesla's electric engine and Remix framework to illustrate the benefits of problem elimination. He emphasizes the value of trade-offs and taking the easier path, as well as the need to constantly re-evaluate and change approaches to eliminate problems.
Acelerando tu aplicación React con menos JavaScript
React Summit 2023React Summit 2023
32 min
Acelerando tu aplicación React con menos JavaScript
Top Content
Mishko, the creator of Angular and AngularJS, discusses the challenges of website performance and JavaScript hydration. He explains the differences between client-side and server-side rendering and introduces Quik as a solution for efficient component hydration. Mishko demonstrates examples of state management and intercommunication using Quik. He highlights the performance benefits of using Quik with React and emphasizes the importance of reducing JavaScript size for better performance. Finally, he mentions the use of QUIC in both MPA and SPA applications for improved startup performance.
Documentación Full Stack
JSNation 2022JSNation 2022
28 min
Documentación Full Stack
Top Content
The Talk discusses the shift to full-stack frameworks and the challenges of full-stack documentation. It highlights the power of interactive tutorials and the importance of user testing in software development. The Talk also introduces learn.svelte.dev, a platform for learning full-stack tools, and discusses the roadmap for SvelteKit and its documentation.

Workshops on related topic

Consejos sobre React Hooks que solo los profesionales conocen
React Summit Remote Edition 2021React Summit Remote Edition 2021
177 min
Consejos sobre React Hooks que solo los profesionales conocen
Top Content
Featured Workshop
Maurice de Beijer
Maurice de Beijer
La adición de la API de hooks a React fue un cambio bastante importante. Antes de los hooks, la mayoría de los componentos tenían que ser basados en clases. Ahora, con los hooks, estos son a menudo componentes funcionales mucho más simples. Los hooks pueden ser realmente simples de usar. Casi engañosamente simples. Porque todavía hay muchas formas en las que puedes equivocarte con los hooks. Y a menudo resulta que hay muchas formas en las que puedes mejorar tus componentes con una mejor comprensión de cómo se puede usar cada hook de React.Aprenderás todo sobre los pros y los contras de los diversos hooks. Aprenderás cuándo usar useState() versus useReducer(). Veremos cómo usar useContext() de manera eficiente. Verás cuándo usar useLayoutEffect() y cuándo useEffect() es mejor.
React, TypeScript y TDD
React Advanced 2021React Advanced 2021
174 min
React, TypeScript y TDD
Top Content
Featured Workshop
Paul Everitt
Paul Everitt
ReactJS es extremadamente popular y, por lo tanto, ampliamente soportado. TypeScript está ganando popularidad y, por lo tanto, cada vez más soportado.

¿Los dos juntos? No tanto. Dado que ambos cambian rápidamente, es difícil encontrar materiales de aprendizaje precisos.

¿React+TypeScript, con los IDEs de JetBrains? Esa combinación de tres partes es el tema de esta serie. Mostraremos un poco sobre mucho. Es decir, los pasos clave para ser productivo, en el IDE, para proyectos de React utilizando TypeScript. En el camino, mostraremos el desarrollo guiado por pruebas y enfatizaremos consejos y trucos en el IDE.
Masterclass Web3 - Construyendo Tu Primer Dapp
React Advanced 2021React Advanced 2021
145 min
Masterclass Web3 - Construyendo Tu Primer Dapp
Top Content
Featured Workshop
Nader Dabit
Nader Dabit
En esta masterclass, aprenderás cómo construir tu primer dapp de pila completa en la blockchain de Ethereum, leyendo y escribiendo datos en la red, y conectando una aplicación de front end al contrato que has desplegado. Al final de la masterclass, entenderás cómo configurar un entorno de desarrollo de pila completa, ejecutar un nodo local e interactuar con cualquier contrato inteligente usando React, HardHat y Ethers.js.
Diseñando Pruebas Efectivas con la Biblioteca de Pruebas de React
React Summit 2023React Summit 2023
151 min
Diseñando Pruebas Efectivas con la Biblioteca de Pruebas de React
Top Content
Featured Workshop
Josh Justice
Josh Justice
La Biblioteca de Pruebas de React es un gran marco para las pruebas de componentes de React porque responde muchas preguntas por ti, por lo que no necesitas preocuparte por esas preguntas. Pero eso no significa que las pruebas sean fáciles. Todavía hay muchas preguntas que tienes que resolver por ti mismo: ¿Cuántas pruebas de componentes debes escribir vs pruebas de extremo a extremo o pruebas de unidad de nivel inferior? ¿Cómo puedes probar una cierta línea de código que es difícil de probar? ¿Y qué se supone que debes hacer con esa persistente advertencia de act()?
En esta masterclass de tres horas, presentaremos la Biblioteca de Pruebas de React junto con un modelo mental de cómo pensar en el diseño de tus pruebas de componentes. Este modelo mental te ayudará a ver cómo probar cada bit de lógica, si debes o no simular dependencias, y ayudará a mejorar el diseño de tus componentes. Te irás con las herramientas, técnicas y principios que necesitas para implementar pruebas de componentes de bajo costo y alto valor.
Tabla de contenidos- Los diferentes tipos de pruebas de aplicaciones de React, y dónde encajan las pruebas de componentes- Un modelo mental para pensar en las entradas y salidas de los componentes que pruebas- Opciones para seleccionar elementos DOM para verificar e interactuar con ellos- El valor de los mocks y por qué no deben evitarse- Los desafíos con la asincronía en las pruebas de RTL y cómo manejarlos
Requisitos previos- Familiaridad con la construcción de aplicaciones con React- Experiencia básica escribiendo pruebas automatizadas con Jest u otro marco de pruebas unitarias- No necesitas ninguna experiencia con la Biblioteca de Pruebas de React- Configuración de la máquina: Node LTS, Yarn
IA a demanda: IA sin servidor
DevOps.js Conf 2024DevOps.js Conf 2024
163 min
IA a demanda: IA sin servidor
Top Content
Featured WorkshopFree
Nathan Disidore
Nathan Disidore
En esta masterclass, discutimos los méritos de la arquitectura sin servidor y cómo se puede aplicar al espacio de la IA. Exploraremos opciones para construir aplicaciones RAG sin servidor para un enfoque más lambda-esque a la IA. A continuación, nos pondremos manos a la obra y construiremos una aplicación CRUD de muestra que te permite almacenar información y consultarla utilizando un LLM con Workers AI, Vectorize, D1 y Cloudflare Workers.