Laravel News presentó Inertia.js 3.8.0 el 2 de octubre de 2026. La versión aborda componentes que dependen del navegador, enteros grandes de PHP, callbacks de formularios, actualizaciones optimistas y restauración de páginas después de un despliegue.

BigInt response
return Inertia::render('Orders/Show', [
 'id' => $order->id,
])->preserveBigIntegers();

Evan Burrell aportó WhenMounted a los adaptadores de React, Vue y Svelte. El componente muestra un fallback durante el renderizado en el servidor y durante el primer renderizado de hidratación. Después muestra sus hijos cuando se monta en el navegador. Así, los componentes que leen window o document ya no provocan el error de SSR "window is not defined". El HTML inicial también coincide entre el servidor y el navegador. Vue utiliza un slot fallback. React recibe el fallback como prop y los hijos como una función, porque JSX evalúa los hijos normales antes de que se renderice WhenMounted. Si el montaje ocurre más tarde durante una visita del cliente, los hijos se muestran de inmediato.

Pascal Baljet añadió soporte opcional para enteros fuera del rango seguro de JavaScript. Un valor PHP de 64 bits como el identificador Snowflake 900719925474099988 puede llegar como número JSON y convertirse en 900719925474100000 al analizarse en el navegador. La función del servidor requiere inertia-laravel v3.5.0. Puede activarse para todas las respuestas con preserve_big_integers en config/inertia.php o mediante INERTIA_PRESERVE_BIG_INTEGERS. Una respuesta individual puede utilizar preserveBigIntegers().

Los valores grandes se envían con el marcador {"$bigint":"..."} y el cliente los recupera como valores BigInt nativos. Los enteros que permanecen dentro del rango seguro siguen siendo números normales. La función cubre la página inicial, las visitas, las recargas parciales, el historial cifrado y SSR. Cuando un BigInt vuelve mediante el router, un formulario o Precognition, se envía como una cadena de dígitos. La regla de validación integer de Laravel y $request->integer() aceptan ese formato.

El componente Form ahora pasa onHttpException, onNetworkError, onBeforeUpdate y onFlash a la visita. Esas props ya existían, pero los adaptadores no las reenviaban. Por eso las respuestas HTTP 500 y los fallos de red durante los envíos de Form no ejecutaban los callbacks. Ahora funcionan como los callbacks equivalentes de useForm. Si uno de los callbacks de error devuelve false, se detienen el evento global y el manejo predeterminado.

Las solicitudes optimistas llevan ahora un identificador. Si la respuesta de una solicitud antigua llega después de que una solicitud optimista más reciente haya terminado correctamente, Inertia ignora la respuesta obsoleta. El estado más nuevo no se revierte. Una solicitud reciente que falla no invalida la respuesta correcta de una solicitud anterior. Esa respuesta todavía puede actualizar la página después del rollback del fallo.

Inertia compara ahora las versiones de los assets tras una recarga del documento durante una navegación hacia atrás o hacia delante. Antes podía restaurar props antiguas desde el estado del historial mientras ya estaba activo el nuevo bundle de JavaScript. Las props añadidas o renombradas podían quedar como undefined. Cuando las versiones difieren, Inertia carga de nuevo la página.

Las notas completas de GitHub comparan 3.7.1 con 3.8.0. Incluyen la corrección de onk para la corrupción de UTF-8 multibyte al analizar cuerpos de solicitudes SSR en #3248, la actualización de pnpm/action-setup de 6.0.10 a 6.1.0 por Dependabot en #3261 y la corrección de los tipos principales sin Axios por fouteox en #3258. También registran #3264 de lazerg, #3245 de pascalbaljet, #3268 de pascalbaljet para usar server.origin al resolver URL CSS de SSR y #3239 de ramonmalcolm10 para eliminar top-level await del bundle SSR generado.

El resto de las entradas cubre el cambio de Form de daleweaver777 en #3262, el trabajo de Evan Burrell en WhenMounted en #3218, las mejoras de las pruebas de CI de pascalbaljet en #3277, las actualizaciones de dependencias en #3278 y #3286 y la limpieza de prefetches cancelados en curso por gianpieropuleo en #3271. La versión también gestiona señales XHR ya abortadas en #3273, corrige un salto de desplazamiento de React InfiniteScroll en Safari y problemas de inestabilidad de CI en #3282, incorpora la implementación de BigInt de #3237 y silencia el aviso state_referenced_locally en el componente App de Svelte en #3287.