React 19: todas las novedades y cómo migrar desde React 18
React 19 llegó como versión estable en diciembre de 2024 con nuevos hooks, Server Actions estables, ref como prop y mejoras sustanciales en el manejo de formularios y estado asíncrono.
React 19: la actualización más importante en años
El 5 de diciembre de 2024, el equipo de React publicó React 19 como versión estable. Después de dos años en desarrollo y meses en beta, llegó con cambios que simplifican patrones comunes que antes requerían librerías externas o código verbose.
Esta es la guía completa de novedades.
Nuevos hooks para estado asíncrono y formularios
useActionState
El nuevo hook useActionState simplifica el manejo de acciones que actualizan estado. Recibe una función (la acción) y un estado inicial, y devuelve el estado actual, la función de dispatch y un booleano de "pendiente".
Antes de React 19, manejar el estado de un formulario con envío asíncrono requería useState, useReducer y lógica manual de loading/error. Con useActionState todo se centraliza en un solo hook.
useFormStatus
Permite que los componentes hijos de un formulario accedan al estado de envío del formulario padre sin prop drilling. El botón de submit puede saber si el formulario está enviándose sin que el padre le pase props explícitamente.
useOptimistic
Facilita las actualizaciones optimistas: mostrar el resultado esperado de una acción inmediatamente mientras se espera la confirmación del servidor. Si la acción falla, el estado vuelve automáticamente al valor anterior.
ref como prop (adiós a forwardRef)
Una de las fricciones más conocidas de React era forwardRef: el patrón verbal necesario para pasar refs a componentes funcionales. En React 19, ref es simplemente una prop más. No se necesita forwardRef ni useImperativeHandle para casos simples.
Los componentes que todavía usan forwardRef siguen funcionando, pero el patrón nuevo es más limpio y fácil de entender.
Context como Provider directamente
Otro cambio de ergonomía: ya no hace falta escribir . Ahora puedes usar directamente. El patrón anterior sigue funcionando, pero quedará deprecado eventualmente.
Server Components y Server Actions estables
React 19 estabiliza los React Server Components (RSC) y los Server Actions, que estaban en uso en frameworks como Next.js pero con advertencias de "experimental".
Los Server Components permiten renderizar componentes en el servidor sin enviar JavaScript al cliente, reduciendo el bundle size. Los Server Actions permiten llamar funciones del servidor directamente desde componentes cliente sin escribir endpoints de API manualmente.
Importante: RSC no es parte de React en sí mismo — es una funcionalidad que los frameworks como Next.js implementan. React 19 establece la API oficial que estos frameworks deben seguir.
El hook use()
use() es un nuevo hook que puede leer el valor de una promesa o un contexto dentro del render. A diferencia de otros hooks, puede usarse dentro de condicionales. Es especialmente útil con Suspense para mostrar estados de carga mientras se resuelven promesas.
Metadatos de documento en componentes
React 19 permite usar tags de metadatos del documento (, , ) directamente dentro de componentes. React los mueve automáticamente al del documento, sin necesidad de librerías como react-helmet.
Mejoras en la carga de recursos
Scripts, hojas de estilo y fuentes ahora pueden declararse en componentes y React garantiza que se carguen antes de que el componente se renderice. Esto reduce los saltos de contenido sin estilo (FOUC) y mejora el rendimiento percibido.
Cómo migrar desde React 18
La migración es relativamente sencilla para la mayoría de proyectos:
- Actualiza React y React DOM a la versión 19
- Ejecuta el codemods oficiales para actualizar imports deprecados
forwardRef — puedes migrarlos progresivamente, no es urgente- Si usas Server Components a través de Next.js, ya están en React 19 desde Next.js 15
El equipo de React publicó una guía oficial de migración con todos los cambios breaking y sus soluciones. La mayoría de proyectos típicos no tiene cambios breaking significativos.
Conclusión
React 19 no reinventa el framework — lo refina. Los nuevos hooks resuelven patrones de formularios y estado asíncrono que toda aplicación real necesita. La eliminación de forwardRef y la simplificación del contexto reducen código boilerplate sin cambiar el modelo mental. Y la estabilización de RSC y Server Actions da a los desarrolladores y frameworks una base oficial sobre la que construir.
Si llevas tiempo posponiendo la actualización, React 19 es el momento.
Junior De Leon
Editor principal de TechPulse.
Comentarios
Sé el primero en comentar.