Laravel News berichtete am 2. Oktober 2026 über Inertia.js 3.8.0. Die Version konzentriert sich auf browsergebundene Komponenten, große PHP-Ganzzahlen, Formular-Callbacks, optimistische Updates und die Wiederherstellung von Seiten nach Deployments.

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

Evan Burrell steuerte WhenMounted für die React-, Vue- und Svelte-Adapter bei. Die Komponente zeigt beim serverseitigen Rendering und beim ersten Hydration-Render einen Fallback. Nach dem Mounten im Browser rendert sie ihre Kinder. Damit lösen Komponenten, die auf window oder document zugreifen, beim SSR nicht mehr den Fehler "window is not defined" aus. Zugleich bleibt das HTML der ersten Browserdarstellung mit dem Server-HTML identisch. Vue verwendet dafür einen Fallback-Slot. React erhält einen Fallback als Prop und die Kinder als Funktion, weil JSX normale Kinder vor dem Rendern von WhenMounted auswertet. Bei einem späteren Mount während eines Client-seitigen Besuchs erscheinen die Kinder sofort.

Pascal Baljet ergänzte eine optionale Verarbeitung von Ganzzahlen außerhalb des sicheren JavaScript-Bereichs. Ein 64-Bit-Wert aus PHP wie die Snowflake-ID 900719925474099988 kann sonst als JSON-Zahl ankommen und im Browser zu 900719925474100000 werden. Die serverseitige Funktion setzt inertia-laravel v3.5.0 voraus. Für alle Antworten lässt sie sich mit preserve_big_integers in config/inertia.php oder über die Umgebungsvariable INERTIA_PRESERVE_BIG_INTEGERS aktivieren. Eine einzelne Antwort kann preserveBigIntegers() verwenden.

Große Werte werden mit dem Marker {"$bigint":"..."} übertragen und im Client als native BigInt-Werte wiederhergestellt. Werte innerhalb des sicheren Bereichs bleiben normale Zahlen. Das gilt für den initialen Seitenaufruf, Besuche, partielle Reloads, verschlüsselte History-Daten und SSR. Wenn ein BigInt über den Router, ein Formular oder Precognition zurückgesendet wird, verwendet Inertia eine Zeichenfolge aus Ziffern. Laravels Integer-Validierungsregel und $request->integer() akzeptieren dieses Format.

Die Form-Komponente reicht nun onHttpException, onNetworkError, onBeforeUpdate und onFlash an den Visit weiter. Diese Props waren bereits vorhanden, wurden von den Adaptern aber nicht übergeben. Deshalb erreichten HTTP-500-Antworten und Netzwerkfehler bei Form-Übertragungen die Callbacks nicht. Ihr Verhalten entspricht nun useForm. Gibt einer der Fehler-Callbacks false zurück, werden das globale Ereignis und die Standardbehandlung unterdrückt.

Optimistische Requests tragen nun eine ID. Trifft die Antwort eines älteren Requests nach dem erfolgreichen Abschluss eines neueren optimistischen Requests ein, ignoriert Inertia die veralteten Daten. Dadurch wird der neuere Zustand nicht zurückgerollt. Ein fehlgeschlagener neuerer Request blockiert eine ältere erfolgreiche Antwort nicht. Diese darf die Seite nach dem Rollback des fehlgeschlagenen Requests weiterhin aktualisieren.

Bei einer Browser-Neuladung während der Vorwärts- oder Rückwärtsnavigation prüft Inertia nun die Asset-Version. Zuvor konnte die Bibliothek alte Props aus dem History-Zustand mit einem bereits geladenen neuen JavaScript-Bundle kombinieren. Neu hinzugefügte oder umbenannte Props waren dann möglicherweise undefined. Bei einer Versionsabweichung lädt Inertia die Seite nun neu.

Die vollständigen GitHub-Notizen vergleichen 3.7.1 mit 3.8.0. Sie nennen onks Korrektur für die Beschädigung von mehrbyteigem UTF-8 beim Parsen des SSR-Request-Bodys in #3248, Dependabots Aktualisierung von pnpm/action-setup von 6.0.10 auf 6.1.0 in #3261 und fouteox' Korrektur der Core-Typen ohne Axios in #3258. Außerdem führen sie #3264 von lazerg, #3245 von pascalbaljet, #3268 von pascalbaljet für server.origin bei SSR-CSS-URLs und #3239 von ramonmalcolm10 zur Entfernung von top-level await aus dem erzeugten SSR-Bundle auf.

Weitere Einträge betreffen daleweaver777s Form-Änderung in #3262, Evan Burrells WhenMounted-Arbeit in #3218, Verbesserungen an den CI-Tests durch pascalbaljet in #3277, Dependency-Updates in #3278 und #3286 sowie die Bereinigung abgebrochener laufender Prefetches durch gianpieropuleo in #3271. Inertia behandelt außerdem bereits abgebrochene XHR-Signale in #3273, behebt einen React-InfiniteScroll-Sprung unter Safari und eine CI-Flakiness in #3282, verzeichnet die BigInt-Implementierung in #3237 und unterdrückt die state_referenced_locally-Warnung in der Svelte-App-Komponente in #3287.