The Daily Commit · Ressort-Ausgabe Titelseite PHP AI Dev EN DE FR ES

The Php Times

Lesestoff — Ökosystem

Inertia.js 3.7 lässt Formulare laufende Uploads selbst abbrechen


Inertia.js v3.7.0 stattet die <Form>-Komponente mit dem Attribut cancelOnUnmount und einer cancel-Methode aus, um laufende Übertragungen beim Entfernen des Formulars oder per Klick abzubrechen.

LARAVEL NEWS, 29. August 2026 kuratiert von Sönke

usePoll liefert jetzt einen reaktiven Polling-Status. Zudem werden once-Props bei Instant Visits erhalten, Navigation bricht keine fremden Async-Visits mehr ab, und drei Fehler in den React-, Vue- und Svelte-Adaptern sind behoben.

Inertia.js v3.7.0, veröffentlicht am 31. August 2026, gibt der <Form>-Komponente zwei neue Wege, eine noch laufende Anfrage zu stoppen. Das Attribut cancelOnUnmount, verfügbar in den Vue-, React- und Svelte-Adaptern, bricht die Übertragung automatisch ab, sobald das Formular aus der Seite entfernt wird, etwa wenn ein Modal während eines Uploads geschlossen wird. Standardmäßig ist es deaktiviert, bestehende Formulare verhalten sich also unverändert. Zusätzlich steht nun eine cancel-Methode über die Slot-Props, die Ref und den Formularkontext der Komponente in allen drei Adaptern zur Verfügung, sodass sich ein expliziter Abbrechen-Button neben dem Absenden-Button einbauen lässt. Damit das funktioniert, wurde die Kernlogik so geändert, dass der onCancelToken-Callback inaktiv wird, sobald eine Antwort eingetroffen ist. Das verhindert, dass beim gängigen Muster, bei dem onSuccess ein übergeordnetes Modal schließt, noch ein onCancel-Ereignis nach onSuccess ausgelöst wird.

Upload.vue
<Form action="/avatar" method="post" cancel-on-unmount>
 <input type="file" name="avatar" />
 <button type="submit">Upload</button>
</Form>

Der Hook usePoll, der bisher nur start und stop lieferte, gibt jetzt zusätzlich einen reaktiven polling-Wert zurück, der anzeigt, ob das Polling aktiv ist, initialisiert über die autoStart-Option (Standard true). In Vue ist das ein Ref<boolean>, in React kommt useState zum Einsatz, und in Svelte wurde der Hook in eine .svelte.ts-Datei mit $state verschoben. Svelte-Nutzer müssen das zurückgegebene Objekt daher zusammenhalten statt es zu destrukturieren, um die Reaktivität zu behalten.

Zwei Fehler auf Router-Ebene wurden behoben. Once-Props, die nur einmal aufgelöst und clientseitig zwischengespeichert werden, verloren bisher ihren Wert in Kombination mit Instant Visits, die vor Abschluss der eigentlichen Anfrage eine Platzhalterseite anzeigen. Der Router überträgt den gespeicherten once-Prop samt Registrierungseintrag nun auf die Platzhalterseite, sofern der Visit keinen eigenen Wert liefert. Außerdem war die Abbruchlogik zu aggressiv: Eine Navigation zu einer neuen Seite brach bislang auch unabhängige Async Visits ab, die auf andere Seiten zielten. Der Abbruch prüft jetzt Herkunft und Pfad der Anfrage, sodass nur Anfragen zur verlassenen Seite abgebrochen werden, etwa Deferred Props, Partial Reloads, router.reload() und Polls, während Async Visits zu anderen Seiten fertig laufen.

Drei weitere Fixes: Der React-Adapter zeigte nach dem Duplizieren eines Tabs in Chrome oder Firefox, was eine back_forward-Navigation auslöst, veraltete Props an (PR #3196); replaceProp(), appendToProp() und prependToProp() klonen das gesamte Props-Objekt nicht mehr tief, was unnötige Re-Renderings und Kopierkosten vermeidet, beigetragen von Svyatoslav Kryukov (PR #3194); und <Form> wirft in React keinen TypeError mehr, wenn ein Input-Ereignis auf einem bereits entfernten Formularelement feuert, ein erster Beitrag von Niek Nijland (PR #3203). Das Update installiert sich über npm, etwa npm install @inertiajs/vue3@^3.7.0, mit entsprechenden Paketen für die React- und Svelte-Adapter.

Originalquelle lesen (Englisch) ↗

Artikel bewerten: 0

Leserforum

Noch keine Beiträge — eröffne die Debatte.

← Ökosystem — Page B1

"All the Code That's Fit to Ship" · The Daily Commit · Bildschirm-Ausgabe · Impressum · Datenschutz