From a248cfb60a2bf8a0856c9332787b3f6764e3571b Mon Sep 17 00:00:00 2001 From: Mr uprizing Date: Wed, 1 Oct 2025 18:35:07 -0500 Subject: [PATCH] feat(blog): React 19.2 --- src/content/blog/2025/10/01/react-19-2.md | 339 ++++++++++++++++++++++ src/content/blog/index.md | 84 +++--- 2 files changed, 384 insertions(+), 39 deletions(-) create mode 100644 src/content/blog/2025/10/01/react-19-2.md diff --git a/src/content/blog/2025/10/01/react-19-2.md b/src/content/blog/2025/10/01/react-19-2.md new file mode 100644 index 000000000..5cc53f22a --- /dev/null +++ b/src/content/blog/2025/10/01/react-19-2.md @@ -0,0 +1,339 @@ +--- +title: "React 19.2" +author: El equipo de React +date: 2025/10/01 +description: React 19.2 agrega nuevas características como Activity, React Performance Tracks, useEffectEvent y más. +--- + +1 de octubre de 2025 por [El equipo de React](/community/team) + +--- + + + +¡React 19.2 ya está disponible en npm! + + + +Este es nuestro tercer lanzamiento en el último año, después de React 19 en diciembre y React 19.1 en junio. En esta publicación, daremos una visión general de las nuevas características de React 19.2 y destacaremos algunos cambios notables. + + + +--- + +## Nuevas características de React {/*new-react-features*/} + +### `` {/*activity*/} + +`` te permite dividir tu aplicación en "actividades" que pueden ser controladas y priorizadas. + +Puedes usar Activity como una alternativa a renderizar condicionalmente partes de tu aplicación: + +```js +// Antes +{isVisible && } + +// Después + + + +``` + +En React 19.2, Activity soporta dos modos: `visible` y `hidden`. + +- `hidden`: oculta los hijos, desmonta los efectos y difiere todas las actualizaciones hasta que React no tenga más trabajo pendiente. +- `visible`: muestra los hijos, monta los efectos y permite que las actualizaciones se procesen normalmente. + +Esto significa que puedes prerenderizar y mantener renderizadas partes ocultas de la app sin afectar el rendimiento de lo que está visible en pantalla. + +Puedes usar Activity para renderizar partes ocultas de la app a las que es probable que el usuario navegue a continuación, o para guardar el estado de partes de las que el usuario se aleja. Esto ayuda a que las navegaciones sean más rápidas cargando datos, CSS e imágenes en segundo plano, y permite que las navegaciones hacia atrás mantengan el estado, como los campos de entrada. + +En el futuro, planeamos agregar más modos a Activity para diferentes casos de uso. + +Para ejemplos de cómo usar Activity, consulta la [documentación de Activity](/reference/react/Activity). + +--- + +### `useEffectEvent` {/*use-effect-event*/} + +Un patrón común con `useEffect` es notificar al código de la app sobre algún tipo de "evento" de un sistema externo. Por ejemplo, cuando una sala de chat se conecta, podrías querer mostrar una notificación: + +```js {5,11} +function ChatRoom({ roomId, theme }) { + useEffect(() => { + const connection = createConnection(serverUrl, roomId); + connection.on('connected', () => { + showNotification('¡Conectado!', theme); + }); + connection.connect(); + return () => { + connection.disconnect() + }; + }, [roomId, theme]); + // ... +``` + +El problema con el código anterior es que un cambio en cualquier valor usado dentro de ese "evento" hará que el Effect circundante se vuelva a ejecutar. Por ejemplo, cambiar el `theme` hará que la sala de chat se reconecte. Esto tiene sentido para valores relacionados con la lógica del Effect, como `roomId`, pero no para `theme`. + +Para solucionar esto, la mayoría de los usuarios simplemente desactivan la regla de lint y excluyen la dependencia. Pero eso puede llevar a errores, ya que el linter ya no puede ayudarte a mantener las dependencias actualizadas si necesitas modificar el Effect más adelante. + +Con `useEffectEvent`, puedes separar la parte de "evento" de esta lógica fuera del Effect que la emite: + +```js {2,3,4,9} +function ChatRoom({ roomId, theme }) { + const onConnected = useEffectEvent(() => { + showNotification('¡Conectado!', theme); + }); + + useEffect(() => { + const connection = createConnection(serverUrl, roomId); + connection.on('connected', () => { + onConnected(); + }); + connection.connect(); + return () => connection.disconnect(); + }, [roomId]); // ✅ Todas las dependencias declaradas (Effect Events no son dependencias) + // ... +``` + +Similar a los eventos del DOM, los Effect Events siempre “ven” las últimas props y estado. + +**Los Effect Events _no_ deben declararse en el array de dependencias**. Necesitarás actualizar a `eslint-plugin-react-hooks@6.1.0` para que el linter no intente insertarlos como dependencias. Ten en cuenta que los Effect Events solo pueden declararse en el mismo componente o Hook que su Effect "propietario". Estas restricciones son verificadas por el linter. + + + +#### Cuándo usar `useEffectEvent` {/*when-to-use-useeffectevent*/} + +Debes usar `useEffectEvent` para funciones que conceptualmente son "eventos" que se disparan desde un Effect en vez de un evento de usuario (eso es lo que lo hace un "Effect Event"). No necesitas envolver todo en `useEffectEvent`, ni usarlo solo para silenciar el error de lint, ya que esto puede causar errores. + +Para un análisis profundo sobre cómo pensar los Effect Events, consulta: [Separando eventos de efectos](/learn/separating-events-from-effects#extracting-non-reactive-logic-out-of-effects). + + + +--- + +### `cacheSignal` {/*cache-signal*/} + + + +`cacheSignal` solo debe usarse con [React Server Components](/reference/rsc/server-components). + + + +`cacheSignal` te permite saber cuándo la vida útil de [`cache()`](/reference/react/cache) ha terminado: + +``` +import {cache, cacheSignal} from 'react'; +const dedupedFetch = cache(fetch); + +async function Component() { + await dedupedFetch(url, { signal: cacheSignal() }); +} +``` + +Esto te permite limpiar o abortar trabajo cuando el resultado ya no se usará en la caché, como por ejemplo: + +- React ha completado exitosamente el renderizado +- El renderizado fue abortado +- El renderizado falló + +Para más información, consulta la [documentación de `cacheSignal`](/reference/react/cacheSignal). + +--- + +### Performance Tracks {/*performance-tracks*/} + +React 19.2 agrega un nuevo conjunto de [tracks personalizados](https://developer.chrome.com/docs/devtools/performance/extension) a los perfiles de rendimiento de Chrome DevTools para proporcionar más información sobre el rendimiento de tu app React: + +
+ + + + + + + + +
+ +La [documentación de React Performance Tracks](/reference/dev-tools/react-performance-tracks) explica todo lo que incluyen los tracks, pero aquí tienes una visión general. + +#### Scheduler ⚛ {/*scheduler-*/} + +El track Scheduler muestra en qué está trabajando React para diferentes prioridades, como "blocking" para interacciones de usuario, o "transition" para actualizaciones dentro de startTransition. Dentro de cada track, verás el tipo de trabajo realizado, como el evento que programó una actualización y cuándo ocurrió el renderizado de esa actualización. + +También mostramos información como cuándo una actualización está bloqueada esperando otra prioridad, o cuándo React espera el repintado antes de continuar. El track Scheduler te ayuda a entender cómo React divide tu código en diferentes prioridades y el orden en que completó el trabajo. + +Consulta la [documentación del track Scheduler](/reference/dev-tools/react-performance-tracks#scheduler) para ver todo lo incluido. + +#### Componentes ⚛ {/*components-*/} + +El track Componentes muestra el árbol de componentes en el que React está trabajando, ya sea para renderizar o ejecutar efectos. Dentro verás etiquetas como "Mount" cuando los hijos se montan o los efectos se montan, o "Blocked" cuando el renderizado está bloqueado por ceder trabajo fuera de React. + +El track Componentes te ayuda a entender cuándo se renderizan los componentes o se ejecutan efectos, y el tiempo que toma completar ese trabajo para ayudar a identificar problemas de rendimiento. + +Consulta la [documentación del track Componentes](/reference/dev-tools/react-performance-tracks#components) para ver todo lo incluido. + +--- + +## Nuevas características de React DOM {/*new-react-dom-features*/} + +### Prerenderizado parcial {/*partial-pre-rendering*/} + +En 19.2 estamos agregando una nueva capacidad para prerenderizar parte de la app por adelantado y reanudar el renderizado más tarde. + +Esta característica se llama "Prerenderizado Parcial" y te permite prerenderizar las partes estáticas de tu app y servirlas desde un CDN, y luego reanudar el renderizado del shell para completarlo con contenido dinámico más adelante. + +Para prerenderizar una app y reanudarla después, primero llama a `prerender` con un `AbortController`: + +``` +const {prelude, postponed} = await prerender(, { + signal: controller.signal, +}); + +// Guarda el estado pospuesto para después +await savePostponedState(postponed); + +// Envía el prelude al cliente o CDN. +``` + +Luego, puedes devolver el shell `prelude` al cliente y más tarde llamar a `resume` para "reanudar" a un stream SSR: + +``` +const postponed = await getPostponedState(request); +const resumeStream = await resume(, postponed); + +// Envía el stream al cliente. +``` + +O puedes llamar a `resumeAndPrerender` para reanudar y obtener HTML estático para SSG: + +``` +const postponedState = await getPostponedState(request); +const { prelude } = await resumeAndPrerender(, postponedState); + +// Envía el prelude HTML completo al CDN. +``` + +Para más información, consulta la documentación de las nuevas APIs: +- `react-dom/server` + - [`resume`](/reference/react-dom/server/resume): para Web Streams. + - [`resumeToPipeableStream`](/reference/react-dom/server/resumeToPipeableStream) para Node Streams. +- `react-dom/static` + - [`resumeAndPrerender`](/reference/react-dom/static/resumeAndPrerender) para Web Streams. + - [`resumeAndPrerenderToNodeStream`](/reference/react-dom/static/resumeAndPrerenderToNodeStream) para Node Streams. + +Además, las APIs de prerender ahora devuelven un estado `postpone` para pasar a las APIs de `resume`. + +--- + +## Cambios notables {/*notable-changes*/} + +### Agrupación de límites de Suspense para SSR {/*batching-suspense-boundaries-for-ssr*/} + +Corregimos un error de comportamiento donde los límites de Suspense se revelaban de manera diferente dependiendo de si se renderizaban en el cliente o al hacer streaming desde el renderizado del lado del servidor. + +A partir de 19.2, React agrupará las revelaciones de los límites de Suspense renderizados en el servidor por un corto tiempo, para permitir que se revele más contenido junto y alinearse con el comportamiento del cliente. + + + +Anteriormente, durante el streaming SSR, el contenido de suspense reemplazaba inmediatamente los fallbacks. + + + + + +En React 19.2, los límites de suspense se agrupan por un pequeño periodo de tiempo, para permitir revelar más contenido junto. + + + +Esta corrección también prepara las apps para soportar `` para Suspense durante SSR. Al revelar más contenido junto, las animaciones pueden ejecutarse en lotes más grandes de contenido y evitar encadenar animaciones de contenido que se transmite muy seguido. + + + +React usa heurísticas para asegurar que la limitación no impacte los core web vitals ni el ranking de búsqueda. + +Por ejemplo, si el tiempo total de carga de la página se acerca a 2.5s (que es el tiempo considerado "bueno" para [LCP](https://web.dev/articles/lcp)), React dejará de agrupar y revelará el contenido inmediatamente para que la limitación no sea la razón de perder la métrica. + + + +--- + +### SSR: Soporte de Web Streams para Node {/*ssr-web-streams-support-for-node*/} + +React 19.2 agrega soporte para Web Streams en el streaming SSR en Node.js: +- [`renderToReadableStream`](/reference/react-dom/server/renderToReadableStream) ahora está disponible para Node.js +- [`prerender`](/reference/react-dom/static/prerender) ahora está disponible para Node.js + +Así como las nuevas APIs de `resume`: +- [`resume`](/reference/react-dom/server/resume): está disponible para Node.js. +- [`resumeAndPrerender`](/reference/react-dom/static/resumeAndPrerender) está disponible para Node.js. + + + + +#### Prefiere Node Streams para renderizado del lado del servidor en Node.js {/*prefer-node-streams-for-server-side-rendering-in-nodejs*/} + +En entornos Node.js, aún recomendamos altamente usar las APIs de Node Streams: + +- [`renderToPipeableStream`](/reference/react-dom/server/renderToPipeableStream) +- [`resumeToPipeableStream`](/reference/react-dom/server/resumeToPipeableStream) +- [`prerenderToNodeStream`](/reference/react-dom/static/prerenderToNodeStream) +- [`resumeAndPrerenderToNodeStream`](/reference/react-dom/static/resumeAndPrerenderToNodeStream) + +Esto es porque los Node Streams son mucho más rápidos que los Web Streams en Node, y los Web Streams no soportan compresión por defecto, lo que puede llevar a que los usuarios pierdan los beneficios del streaming. + + + +--- + +### `eslint-plugin-react-hooks` v6 {/*eslint-plugin-react-hooks*/} + +También publicamos `eslint-plugin-react-hooks@6.1.0` con configuración plana por defecto en el preset `recommended`, y opción para nuevas reglas impulsadas por el React Compiler. + +Para seguir usando la configuración heredada, puedes cambiar a `recommended-legacy`: + +```diff +- extends: ['plugin:react-hooks/recommended'] ++ extends: ['plugin:react-hooks/recommended-legacy'] +``` + +Para una lista completa de reglas habilitadas por el compilador, [consulta la documentación del linter](/reference/eslint-plugin-react-hooks#additional-rules). + +Consulta el [changelog de eslint-plugin-react-hooks](https://github.com/facebook/react/blob/main/packages/eslint-plugin-react-hooks/CHANGELOG.md#610) para ver todos los cambios. + +--- + +### Actualización del prefijo por defecto de `useId` {/*update-the-default-useid-prefix*/} + +En 19.2, actualizamos el prefijo por defecto de `useId` de `:r:` (19.0.0) o `«r»` (19.1.0) a `_r_`. + +La intención original de usar un carácter especial que no fuera válido para selectores CSS era que fuera poco probable que colisionara con IDs escritos por los usuarios. Sin embargo, para soportar View Transitions, necesitamos asegurarnos de que los IDs generados por `useId` sean válidos para `view-transition-name` y nombres XML 1.0. + +--- + +## Registro de cambios {/*changelog*/} + +Otros cambios notables +- `react-dom`: Permitir usar nonce en estilos hoistable [#32461](https://github.com/facebook/react/pull/32461) +- `react-dom`: Advertir al usar un nodo propiedad de React como contenedor si también tiene contenido de texto [#32774](https://github.com/facebook/react/pull/32774) + +Correcciones de errores notables +- `react`: Convertir context a "SomeContext" en vez de "SomeContext.Provider" [#33507](https://github.com/facebook/react/pull/33507) +- `react`: Corregir bucle infinito de useDeferredValue en evento popstate [#32821](https://github.com/facebook/react/pull/32821) +- `react`: Corregir un error al pasar un valor inicial a useDeferredValue [#34376](https://github.com/facebook/react/pull/34376) +- `react`: Corregir un fallo al enviar formularios con Client Actions [#33055](https://github.com/facebook/react/pull/33055) +- `react`: Ocultar/mostrar el contenido de límites de suspense deshidratados si se resuspenden [#32900](https://github.com/facebook/react/pull/32900) +- `react`: Evitar stack overflow en árboles anchos durante Hot Reload [#34145](https://github.com/facebook/react/pull/34145) +- `react`: Mejorar los stacks de componentes en varios lugares [#33629](https://github.com/facebook/react/pull/33629), [#33724](https://github.com/facebook/react/pull/33724), [#32735](https://github.com/facebook/react/pull/32735), [#33723](https://github.com/facebook/react/pull/33723) +- `react`: Corregir un error con React.use dentro de un componente React.lazy [#33941](https://github.com/facebook/react/pull/33941) +- `react-dom`: Dejar de advertir al usar atributos ARIA 1.3 [#34264](https://github.com/facebook/react/pull/34264) +- `react-dom`: Corregir un error con Suspense profundamente anidado dentro de fallbacks de Suspense [#33467](https://github.com/facebook/react/pull/33467) +- `react-dom`: Evitar quedarse colgado al suspender después de abortar durante el renderizado [#34192](https://github.com/facebook/react/pull/34192) + +Para una lista completa de cambios, consulta el [registro de cambios](https://github.com/facebook/react/blob/main/CHANGELOG.md). + + +--- + +_Agradecimientos a [Ricky Hanlon](https://bsky.app/profile/ricky.fm) por [escribir esta publicación](https://www.youtube.com/shorts/T9X3YkgZRG0), [Dan Abramov](https://bsky.app/profile/danabra.mov), [Matt Carroll](https://twitter.com/mattcarrollcode), [Jack Pope](https://jackpope.me) y [Joe Savona](https://x.com/en_JS) por revisar esta publicación._ diff --git a/src/content/blog/index.md b/src/content/blog/index.md index e52112f39..2f9d7507a 100644 --- a/src/content/blog/index.md +++ b/src/content/blog/index.md @@ -1,89 +1,95 @@ --- -title: Blog React +title: Blog de React --- -Este blog es la fuente oficial de las actualizaciones del equipo React. Cualquier cosa importante, incluidas las notas de la versión o las noticias de obsolescencia, se publicarán primero aquí. También puedes seguir la cuenta [@react.dev](https://bsky.app/profile/react.dev) en Bluesky o [@reactjs](https://twitter.com/reactjs) en Twitter, pero no te perderás nada esencial si solo lees este blog. +Este blog es la fuente oficial de actualizaciones del equipo de React. Cualquier cosa importante, incluidas notas de lanzamiento o avisos de desaprobación, se publicará aquí primero. + +También puedes seguir la cuenta [@react.dev](https://bsky.app/profile/react.dev) en Bluesky, o la cuenta [@reactjs](https://twitter.com/reactjs) en Twitter, pero no te perderás nada esencial si solo lees este blog.
- + -In React Labs posts, we write about projects in active research and development. In this post, we're sharing two new experimental features that are ready to try today, and sharing other areas we're working on now ... +React 19.2 añade nuevas características como Activity, React Performance Tracks, useEffectEvent y más. En esta publicación ... - + -We are releasing the compiler's first Release Candidate (RC) today. +En las publicaciones de React Labs, escribimos sobre proyectos en investigación y desarrollo activo. En esta publicación, compartimos dos nuevas características experimentales que ya puedes probar hoy, y otras áreas en las que estamos trabajando ahora ... - + -Today, we’re deprecating Create React App for new apps, and encouraging existing apps to migrate to a framework, or to migrate to a build tool like Vite, Parcel, or RSBuild. We’re also providing docs for when a framework isn’t a good fit for your project, you want to build your own framework, or you just want to learn how React works by building a React app from scratch ... +Hoy lanzamos el primer Release Candidate (RC) del compilador. - + -In the React 19 Upgrade Guide, we shared step-by-step instructions for upgrading your app to React 19. In this post, we'll give an overview of the new features in React 19, and how you can adopt them ... +Hoy, desaprobamos Create React App para nuevas aplicaciones y alentamos a las aplicaciones existentes a migrar a un framework, o a una herramienta de construcción como Vite, Parcel o RSBuild. También proporcionamos documentación para cuando un framework no sea adecuado para tu proyecto, quieras construir tu propio framework, o simplemente quieras aprender cómo funciona React creando una app desde cero ... - + -We announced an experimental release of React Compiler at React Conf 2024. We've made a lot of progress since then, and in this post we want to share what's next for React Compiler ... +En la Guía de Actualización a React 19, compartimos instrucciones paso a paso para actualizar tu app a React 19. En esta publicación, daremos una visión general de las nuevas características de React 19 y cómo puedes adoptarlas ... - + -Last week we hosted React Conf 2024, a two-day conference in Henderson, Nevada where 700+ attendees gathered in-person to discuss the latest in UI engineering. This was our first in-person conference since 2019, and we were thrilled to be able to bring the community together again ... +Anunciamos una versión experimental de React Compiler en React Conf 2024. Hemos avanzado mucho desde entonces, y en esta publicación queremos compartir qué sigue para React Compiler ... - + -The improvements added to React 19 require some breaking changes, but we've worked to make the upgrade as smooth as possible, and we don't expect the changes to impact most apps. In this post, we will guide you through the steps for upgrading libraries to React 19 ... +La semana pasada organizamos React Conf 2024, una conferencia de dos días en Henderson, Nevada, donde más de 700 asistentes se reunieron en persona para discutir lo último en ingeniería de interfaces. Esta fue nuestra primera conferencia presencial desde 2019, y nos emocionó poder reunir a la comunidad nuevamente ... - + -In React Labs posts, we write about projects in active research and development. Since our last update, we've made significant progress on React Compiler, new features, and React 19, and we'd like to share what we learned. +Las mejoras añadidas en React 19 requieren algunos cambios importantes, pero hemos trabajado para que la actualización sea lo más fluida posible, y no esperamos que los cambios afecten a la mayoría de las aplicaciones. En esta publicación, te guiaremos a través de los pasos para actualizar librerías a React 19 ... - + -Nos gustaría ofrecer a la comunidad de React una opción para adoptar las nuevas características tan pronto su diseño está cerca de su etapa final, antes de que sean lanzados a una versión estable (similar a cómo Meta ha utilizado internamente las más recientes versiones de React). Estamos presentando oficialmente un nuevo canal de lanzamiento Canary con apoyo oficial. Permite que las configuraciones seleccionadas como los frameworks desvinculen la adopción de funcionalidades individuales de React del calendario de lanzamiento de React... +En las publicaciones de React Labs, escribimos sobre proyectos en investigación y desarrollo activo. Desde nuestra última actualización, hemos avanzado significativamente en React Compiler, nuevas características y React 19, y queremos compartir lo que hemos aprendido. - + -In React Labs posts, we write about projects in active research and development. Since our last update, we've made significant progress on React Server Components, Asset Loading, Optimizing Compiler, Offscreen Rendering, and Transition Tracing, and we'd like to share what we learned... +Tradicionalmente, las nuevas características de React solo estaban disponibles primero en Meta y luego llegaban a las versiones de código abierto. Nos gustaría ofrecer a la comunidad de React la opción de adoptar nuevas características individuales tan pronto como su diseño esté casi finalizado, similar a cómo Meta usa React internamente. Estamos introduciendo un nuevo canal de lanzamiento Canary oficialmente soportado. Permite que configuraciones seleccionadas como frameworks adopten características individuales de React de manera independiente al calendario de lanzamientos de React. + - - -Hoy estamos encantados de lanzar react.dev, el nuevo hogar de React y su documentación. En esta publicación, nos gustaría darle un recorrido por el nuevo sitio... +En las publicaciones de React Labs, escribimos sobre proyectos en investigación y desarrollo activo. Desde nuestra última actualización, hemos avanzado significativamente en React Server Components, Asset Loading, Optimizing Compiler, Offscreen Rendering y Transition Tracing, y queremos compartir lo que hemos aprendido. + + +Hoy estamos emocionados de lanzar react.dev, el nuevo hogar de React y su documentación. En esta publicación, queremos darte un recorrido por el nuevo sitio. + + - -React 18 was years in the making, and with it brought valuable lessons for the React team. Its release was the result of many years of research and exploring many paths. Some of those paths were successful; many more were dead-ends that led to new insights. One lesson we’ve learned is that it’s frustrating for the community to wait for new features without having insight into these paths that we’re exploring... + +React 18 llevó años de desarrollo, y con él llegaron valiosas lecciones para el equipo de React. Su lanzamiento fue el resultado de muchos años de investigación y exploración de muchos caminos. Algunos de esos caminos fueron exitosos; muchos más fueron callejones sin salida que llevaron a nuevos aprendizajes. Una lección que hemos aprendido es que es frustrante para la comunidad esperar nuevas características sin tener información sobre estos caminos que estamos explorando... -¡React 18 ya está disponible en npm! En nuestro último artículo, compartimos instrucciones paso a paso para actualizar tu aplicación a React 18. En este artículo, daremos una descripción general de las novedades en React 18 y lo que significa para el futuro... +¡React 18 ya está disponible en npm! En nuestra última publicación, compartimos instrucciones paso a paso para actualizar tu app a React 18. En esta publicación, daremos una visión general de lo nuevo en React 18 y lo que significa para el futuro... @@ -91,33 +97,33 @@ Como compartimos en la publicación de lanzamiento, React 18 introduce caracter -La semana pasada organizamos nuestra 6ª React Conf. En años anteriores, usamos el escenario React Conf para ofrecer anuncios que cambiaron la industria, como React Native y los Hooks de React. Este año, compartimos nuestra visión multiplataforma para React, comenzando con el lanzamiento de React 18 y la adopción gradual de funcionalidades concurrentes... +La semana pasada organizamos nuestra sexta React Conf. En años anteriores, hemos usado el escenario de React Conf para anunciar cambios revolucionarios en la industria como React Native y React Hooks. Este año, compartimos nuestra visión multiplataforma para React, comenzando con el lanzamiento de React 18 y la adopción gradual de características concurrentes... -El equipo de React está emocionado por compartir algunas novedades: +El equipo de React está emocionado de compartir algunas actualizaciones: -- Empezamos a trabajar en el lanzamiento de React 18, nuestra próxima versión mayor. -- Creamos un grupo de trabajo para preparar a la comunidad ante una adopción gradual de las nuevas características en React 18. -- Publicamos React 18 Alpha para que los autores de bibliotecas puedan probarlo y darnos sus impresiones... +- Hemos comenzado a trabajar en el lanzamiento de React 18, que será nuestra próxima versión principal. +- Hemos creado un Grupo de Trabajo para preparar a la comunidad para la adopción gradual de nuevas características en React 18. +- Hemos publicado una Alpha de React 18 para que los autores de librerías puedan probarla y dar su opinión... - -2020 ha sido un año bastante largo. Antes de que termine queremos compartirte una actualización especial de fin de año sobre nuestra investigación acerca de los **Componentes de React en el Servidor** (*React Server Components* o RSC) con cero JavaScript del lado del cliente. Para introducir los Componentes de React en el Servidor, hemos preparado una charla y una demo. Si lo deseas, puedes revisarlas durante las vacaciones decembrinas, o después cuando el trabajo se reanude en el año nuevo... + +2020 ha sido un año largo. Al llegar a su fin, queríamos compartir una actualización especial de vacaciones sobre nuestra investigación en React Server Components de tamaño cero. Para presentar React Server Components, hemos preparado una charla y una demo. Si quieres, puedes revisarlas durante las vacaciones, o más adelante cuando el trabajo se reanude en el nuevo año...
--- -### Todas las notas de la versión {/*all-release-notes*/} +### Todas las notas de lanzamiento {/*all-release-notes*/} -No todas las versiones de React merecen su propia entrada en el blog, pero puedes encontrar un registro de cambios detallado para cada versión en el archivo [`CHANGELOG.md`](https://github.com/facebook/react/blob/main/CHANGELOG.md) en el repositorio de React, así como en la página de [Versiones](https://github.com/facebook/react/releases). +No todas las versiones de React merecen su propia publicación en el blog, pero puedes encontrar un registro de cambios detallado para cada versión en el archivo [`CHANGELOG.md`](https://github.com/facebook/react/blob/main/CHANGELOG.md) en el repositorio de React, así como en la página de [Lanzamientos](https://github.com/facebook/react/releases). --- -### Posts antiguos {/*older-posts*/} +### Publicaciones antiguas {/*older-posts*/} -Ver los [posts antiguos.](https://es.reactjs.org/blog/all.html) +Consulta las [publicaciones antiguas.](https://reactjs.org/blog/all.html)