React 19.3 bringt View Transitions und Fragment Refs
React 19.3 ist am 9. September 2026 erschienen. View Transitions und Fragment Refs sind jetzt stabil, und das Release enthält keine Breaking Changes.
3 Min. Lesezeit

Die Zahlen
- pull requests behind the View Transitions work
- 47
- pull requests behind Fragment Refs
- 26
- contributors to the release
- 52
React 19.3 ist da. Das React-Team veröffentlichte das Release am 9. September 2026 und hob damit zwei lange experimentelle Funktionen in den stabilen Status: View Transitions und Fragment Refs. Die Release Notes auf GitHub nennen 52 Mitwirkende, mit 47 Pull Requests allein hinter View Transitions und 26 hinter Fragment Refs.
Es gibt keine Breaking Changes. Jede Funktion hier ist etwas, für das man sich aktiv entscheidet.
View Transitions, und wann sie tatsächlich ausgelöst werden
Die neue Komponente <ViewTransition> animiert Elemente, wenn sie erscheinen, verschwinden, sich bewegen oder ihre Größe ändern. Sie nutzt dafür die View Transition API des Browsers, statt in JavaScript zu animieren.
Die Regel, über die Leute stolpern, ist, welche Updates animiert werden. Reacts Dokumentation ist eindeutig: „Updates, die nicht als Transitions markiert sind, lösen keine Animationen aus, da diese als dringend gelten und sofort in der UI erscheinen sollen.“ Drei Dinge lösen eine Animation aus. Ein State-Update innerhalb von startTransition, das Einblenden eines Suspense-Inhalts oder ein Update aus useDeferredValue.
Wer also eine Komponente in <ViewTransition> einpackt und dann normal setState aufruft, erzeugt gar keine Animation. Das ist das beabsichtigte Verhalten, kein Bug, und es ist das Erste, was man prüfen sollte, wenn sich nichts bewegt.
This Week In React weist auf eine begleitende API hin, addTransitionType, mit der man „die Animation direkt aus dem Code heraus anpassen kann, der sie auslöst“. Das zählt, weil dieselbe Komponente oft je nach Ursache der Änderung anders animieren muss.
Eine Plattformgrenze benennt das React-Team klar: „Derzeit funktioniert <ViewTransition> nur im DOM. Wir arbeiten an der Unterstützung für React Native und andere Plattformen.“
Fragment Refs machen das Wrapper-div überflüssig
Mit Fragment Refs lässt sich ein Ref an ein <Fragment> hängen, um die Gruppe der darin enthaltenen DOM-Knoten als Einheit zu bearbeiten.
Das Problem, das sie lösen, ist vertraut. Wer einen Zugriff auf mehrere Geschwisterelemente braucht, fügt normalerweise ein umschließendes <div> hinzu, an dem das Ref hängt. Dieser Wrapper stört dann Styling und Layout in seiner Umgebung. Grid- und Flex-Kinder sind die üblichen Opfer.
Die Release Notes auf GitHub beschreiben die Änderung als „Refs für <Fragment />, um komponierbares Plattformverhalten zu unterstützen“. This Week In React sieht den Gewinn darin, dass „neue Kompositionsmuster, die bisher schwierig waren“, möglich werden. Die praktischen Anwendungsfälle sind Event-Listening über eine Gruppe hinweg und Fokusverwaltung.
Die kleineren Änderungen
| Änderung | Was sie tut |
|---|---|
| Unabhängige Transitions | Transitions „rendern unabhängig voneinander, statt zu einem einzigen Render verflochten zu werden, sodass eine langsame Transition keine unabhängigen mehr aufhält“ |
browser() aus react-dom | Liefert „ein Usable, das beim Server-Rendering einen Fehler wirft und im Browser aufgelöst wird“, und nimmt so einen Teilbaum per Suspense vom Server-Rendering aus |
| Unterstützung für Trusted Types | Lässt React mit einer Content-Security-Policy zusammenarbeiten, die Trusted Types verlangt, um DOM-basiertes XSS zu verhindern |
| Context in Server Components | <Context> kann direkt aus einem 'use client'-Modul gerendert werden, ohne separate Provider-Wrapper-Komponente |
use(browser()) folgt den normalen Regeln für use. Die React-Dokumentation sagt, es „kann innerhalb einer Bedingung oder nach einem frühen Return aufgerufen werden“, was ungewöhnlich und beabsichtigt ist.
Was das für Entwickler bedeutet
Aktualisieren Sie, weil das Release es wert ist, nicht wegen der Animationen. Ohne Breaking Changes ist 19.3 ein routinemäßiger Versionssprung, und die beiden Hauptneuerungen sind reine Ergänzungen.
Wenn Sie View Transitions einführen, planen Sie Zeit für die Transition-Regel ein, nicht für das CSS. Die meiste Verwirrung bei der frühen Einführung wird von Updates kommen, die stillschweigend nicht animieren, weil sie nie als Transitions markiert wurden. Prüfen Sie, wo Ihre State-Updates tatsächlich stattfinden, bevor Sie irgendetwas einpacken.
Überprüfen Sie auch Ihre Annahmen zur Browser-Unterstützung. Das Ganze stützt sich auf eine Browser-API, nicht auf eine reine React-Implementierung. Ihre Untergrenze ist also das, was die Browser Ihrer Nutzer mitbringen. Diese Untergrenze bewegt sich schneller als früher, seit Chrome auf einen zweiwöchigen Release-Rhythmus umgestellt hat, aber sie schließt Animation als Garantie weiterhin aus. Behandeln Sie sie als Verbesserung, die zu keiner Animation degradiert.
Fragment Refs sind die Änderung, die sich am ehesten still auszahlt. Wenn Ihre Codebasis Wrapper-<div>s trägt, die nur existieren, um ein Ref zu halten, ist jedes davon ein Kandidat zum Löschen. Sie zu entfernen räumt auch Layout-Workarounds weg, bei denen es nie um Layout ging.
React-Native-Teams haben von der Hauptfunktion dieses Releases nichts. View Transitions sind heute DOM-only, und das React-Team hat sich zu anderen Plattformen bekannt, ohne einen Termin zu nennen.
Quellen
- React 19.3 - React
- Release 19.3.0 - GitHub
- This Week In React #296 - This Week In React
Ähnliche Artikel

JPEG-XL-Kritik: AVIF komprimiert jetzt besser
Eine neue Messreihe setzt AVIF über den ganzen Qualitätsbereich vor JPEG XL und braucht für eine 1.918 Byte große JPEG-XL-Datei 17,43 Sekunden zum Dekodieren.

TryNix führt jedes Nix-Paket im Browser-Tab aus
TryNix bootet einen zu WebAssembly kompilierten Linux-Kernel und führt jede von 310.083 nixpkgs-Versionen im Tab aus. Python 3 braucht beim ersten Besuch 7,5 Sekunden.

Rustls 0.23.45 behebt einen TLS-1.3-Fehler von 2024
Die Versionen 0.23.13 bis 0.23.44 akzeptierten TLS-1.3-Handshake-Nachrichten auf der falschen Verschlüsselungsebene, ein Fehler aus dem September 2024.