React 19.2: The async shift is finally here. Der Blogpost zeigt das erste mal, wie man use() mit einem Promise richtig benutzt. Wenn man danach sucht, sieht man häufig einfach nur ein use(fetch()). Das ist aber leider kaputt. Das Promise, das man use gibt, muss render-stabil sein. Heißt, es sollte beim erneuten Render der Komponente gleich bleiben. Bei use(fetch()) wird bei jedem Render ein neues Promise erzeugt, was in einer Re-Render-Kaskade endet. Das ist ein Fehler, der ggf. gar nicht auffällt. Besonders, wenn man react-compiler einsetzt.
Ich hab schon länger nach einer sehr dünnen Library gesucht, die react-query/swr macht, aber basierend auf Suspense und use. Das scheint es noch nicht zu geben - ehrlich gesagt gibt es da auch nicht so viel zu machen. Sowohl react-query als auch swr supporten Suspense für Daten. Die benutzen aber unter der Haube kein use(), sondern irgendwas anderes, weil die auch mit React < 19 funktionieren. Könnte also mehr Overhead haben.