Nuevas API y funciones
- Actions: gestionan automáticamente los cambios de datos y las actualizaciones de estado. Administran de forma automática el estado de espera, los errores, las actualizaciones optimistas y más
useActionState: nuevo hook para manejar de forma sencilla los casos de uso más comunes de Actions
use API: permite leer promesas y contexto durante el renderizado
useOptimistic: facilita la implementación de actualizaciones de UI optimistas durante solicitudes asíncronas
ref as a prop: permite usar directamente la prop ref en componentes de función (forwardRef ya no es necesario)
<Context> as a Provider: permite usar directamente <Context> en lugar de <Context.Provider>
Gestión de documentos y recursos
- Soporte para metadata: permite usar directamente las etiquetas
<title>, <link> y <meta> dentro de los componentes
- Soporte para hojas de estilo: carga de hojas de estilo y gestión de prioridades dentro de los componentes
- Soporte para scripts asíncronos: permite renderizar scripts asíncronos en cualquier parte del árbol de componentes
- Precarga de recursos: incluye las API
prefetchDNS, preconnect, preload y preinit para optimizar el rendimiento
Mejoras
- Soporte para custom elements: se agrega soporte completo para custom elements
- Mejoras en el manejo de errores: elimina errores duplicados y agrega opciones para el manejo de errores
- Compatibilidad con scripts/extensiones de terceros: mejora el procesamiento de contenido de terceros durante la hydration
- Mejoras en errores de hydration: ofrece mensajes de error más claros e información de depuración
Server Components
- Server Components estabilizados: todas las funciones de Server Components del canal Canary están incluidas en React 19
- Server Actions: permite llamar funciones del servidor desde componentes de cliente
Otros
- Valor inicial de
useDeferredValue: se agrega una opción de valor inicial a useDeferredValue
- Función de cleanup para ref: los callbacks de ref ahora pueden devolver una función de cleanup
- Nuevas Static API: se agregan las API
prerender y prerenderToNodeStream
1 comentarios
En esta versión 19, se redefinió el comportamiento de
<Suspense>, que había sido motivo de controversia. Hasta ahora, cuando se aplicaba Suspense a un componente, se renderizaba hasta el siguiente componente con Suspense y luego se generaba el fallback, pero ahora cambió el orden: primero se genera el fallback y después se renderiza el siguiente componente con Suspense.Improvements to Suspense
En pocas palabras, se puede ver como una reducción en el tiempo del primer render. Qué bueno que lo hayan resuelto bien.