Eine Komponente suspendiert, wenn sie ein Promise liest, das noch nicht aufgelöst ist. React geht hoch bis zur nächsten Suspense-Boundary, zeigt deren Fallback, bis das Promise durch ist, und rendert dann den echten Inhalt. In React 19 liest du ein Promise mit dem use-Hook, üblicherweise erzeugt in einer Server Component oder einem Cache und nach unten gereicht. Suspense koordiniert Ladezustände, es holt selbst keine Daten.
Warum Interviewer das fragen
Viele können Suspense als Wrapper für einen Spinner beschreiben. Der Interviewer will wissen, ob du den Mechanismus verstehst, dass Suspendieren ein Throw-and-Retry-Modell ist, und das wichtige Detail, dass Framework oder Library das Holen übernehmen. Er prüft außerdem, ob du weißt, wo du Boundaries platzierst, damit ein langsames Panel nicht die ganze Seite leerräumt.
So baust du deine Antwort auf
- Sag, was Suspendieren bedeutet und was die Boundary macht.
- Nenn, woher das Promise kommen soll und woher auf keinen Fall.
- Erklär Boundary-Platzierung und Streaming.
- Erwähn das Waterfall-Risiko und wie du es vermeidest.
Beispielantwort
Suspense ist ein Koordinations-Primitiv, keine Datenschicht. Liest eine Komponente ein Promise, das noch nicht aufgelöst ist, suspendiert sie, React findet die nächste Boundary darüber, rendert deren Fallback und versucht den Teilbaum erneut, sobald das Promise durch ist. In React 19 liest man eins mit dem use-Hook, und die wichtige Regel ist, dass das Promise nicht während des Renders der Komponente entstehen darf, die use aufruft, sonst baust du bei jedem Versuch ein frisches Promise, und es löst nie auf. In der Praxis startet das Promise also in einer Server Component oder kommt aus einem Cache und wird nach unten gereicht. Serverseitig passt das zum Streaming: Die Shell geht sofort raus, und langsamere Bereiche streamen nach, sobald ihre Daten da sind. Bei der Platzierung versuche ich, das Kleinste einzupacken, für das ein User ein Skeleton akzeptieren würde, damit ein langsames Empfehlungs-Panel nicht die Produktdetails aufhält. Die Falle sind sequenzielle awaits, die einen Waterfall erzeugen, ich stoße unabhängige Fetches also gemeinsam an, bevor ich sie awaite.
Steht dieses Vorstellungsgespräch bald an? GhostPilot hört bei deinem Live-Call mit, erkennt die Frage in dem Moment, in dem sie gestellt wird, und bringt dir eine strukturierte Antwort in Echtzeit auf den Bildschirm. Probier es im nächsten Mock aus, oder hol dir einen $29 Session Pass, kein Abo, für den Ernstfall.
So funktioniert esNachfragen, mit denen du rechnen solltest
- Warum solltest du das Promise nicht in der Komponente erzeugen, die use aufruft?
- Wie greifen Suspense-Boundaries und Streaming beim Server-Rendering ineinander?
- Wie vermeidest du einen Request-Waterfall über verschachtelte Komponenten hinweg?
Weitere Fragen für React-Entwickler
Dein Interviewer stellt seine eigene Version davon. Kopier deine echte Stellenbeschreibung in den kostenlosen Question Predictor und bekomm die 20 Fragen, die diese Rolle am wahrscheinlichsten stellt, samt dem, worauf jede wirklich abzielt.
Meine Fragen vorhersagen