Leg die Daten in eine cachende Schicht, nach Request gekeyt, statt in Komponenten-State. Eine Query-Library dedupliziert gleichzeitige Requests auf denselben Key, liefert gecachte Daten sofort aus und revalidiert im Hintergrund und gibt dir eine Stelle für die Invalidierung nach einer Mutation. Serverseitig sorgen Caching auf Request-Ebene plus Prefetching in der Route dafür, dass der Client die Daten oft schon hat, bevor die Komponente mountet.
Warum Interviewer das fragen
Der Interviewer testet, ob du Server-State von UI-State unterscheidest, und das ist in den meisten React-Apps die größte architektonische Entscheidung. Er will von Cache-Keys, Staleness und Invalidierung hören und nicht von einem globalen Store voller API-Antworten. Prefetching und Request-Deduplizierung zu erwähnen zeigt, dass du das Waterfall-Problem in einer echten App hattest und nicht nur im Tutorial.
So baust du deine Antwort auf
- Benenn den Kategorienfehler: Serverdaten sind ein Cache, kein State.
- Erklär Deduplizierung, Stale Time und Revalidierung im Hintergrund.
- Deck Invalidierung nach Mutations ab und wer die Keys besitzt.
- Ergänz Prefetching oder serverseitiges Holen, um den Waterfall zu killen.
Beispielantwort
Die Ursache ist meist, dass die Daten wie Komponenten-State behandelt werden, jeder Screen besitzt also seine eigene Kopie und seinen eigenen Fetch. Ich verschiebe das in einen Query-Cache, gekeyt nach etwas Sinnvollem, etwa Ressourcenname plus ID. Sobald es gekeyt ist, erzeugen drei Komponenten, die in einem Render-Durchgang dasselbe anfragen, genau einen Netzwerk-Request, und der zweite Screen malt sofort aus dem Cache, während im Hintergrund leise revalidiert wird. Die Stale Time setze ich pro Ressource statt global, denn ein Userprofil darf minutenlang veraltet sein, ein Live-Bestellstatus nicht. Mutations invalidieren dann gezielte Keys statt alles, und ich halte die Key-Builder in einem Modul, damit niemand einen leicht abweichenden Key erfindet und den Cache leise zerlegt. Wenn das Framework es unterstützt, prefetche ich in der Route oder hole auf dem Server, damit die Daten schon unterwegs sind, bevor die Komponente mountet, und genau das entfernt den Waterfall wirklich, statt ihn hinter einem Spinner zu verstecken.
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
- Wie entscheidest du die Stale Time für eine bestimmte Ressource?
- Wie würdest du eine Mutation behandeln, die mehrere gecachte Listen betrifft?
- Wie gehst du vor, wenn zwei Screens unterschiedliche Formen derselben Daten brauchen?
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