Interviewfragen zum State Management (Senior) mit Antworten
75 Fragen fürs Vorstellungsgespräch zum State Management (Senior) mit richtigen Antworten, Erklärungen und Links zur Dokumentation.
Diesen Test machen- 1.Warum abonnieren Redux, Zustand und ähnliche Bibliotheken über
useSyncExternalStore? - 2.Was ist an diesem
getSnapshotfalsch? - 3.Was ist der Unterschied zwischen dem Modell „Selektor abonnieren“ (Redux, Zustand) und Context?
- 4.Wo sollte der Zustand eines Listenfilters (Suchtext, Sortierung, Seite) in einer App mit Routing idealerweise liegen?
- 5.Welche Einteilung von State hilft in einer großen App bei der Werkzeugwahl?
- 6.Wie verhindert man, dass Konsumenten eines
CartContextneu rendern, wenn sie nur Actions im Stil vondispatchnutzen? - 7.Warum werden Context-Provider im Next.js App Router in eine eigene Client-Komponente gelegt?
- 8.Warum gilt „ein großer AppContext mit allem State“ als Anti-Pattern?
- 9.Was bringt
use(Context)in React 19 gegenüberuseContext? - 10.Wofür ist
createListenerMiddlewareda? - 11.Was bringt
combineSlicesin Redux Toolkit? - 12.Warum sollte man keine Promises, Klasseninstanzen oder Funktionen in den Redux Store legen?
- 13.Was braucht ein memoisierter Selektor aus
createSelector, um mit Argumenten effektiv zu sein? - 14.Warum empfiehlt Redux mit
createSlicedie Struktur „Ducks“/Feature-Ordner? - 15.Ein Reducer für
orders/placedmuss auch den Warenkorb-Slice leeren. Wie macht man das idiomatisch? - 16.Warum ist ein Zustand-Store auf Modulebene beim SSR (Next.js) gefährlich?
- 17.Wie speichert man nur einige Felder eines Zustand-Stores und behandelt Schemaänderungen?
- 18.Wie reagiert man außerhalb von React auf Zustand-Änderungen (z. B. Sync zu einem Analytics-SDK)?
- 19.Was bringt die Middleware
devtoolseinem Zustand-Store? - 20.Zustand vs. Redux Toolkit: wann ist RTK die stärkere Wahl?
- 21.Wie implementiert man in TanStack Query ein optimistisches Update mit dem Cache?
- 22.Was ist Structural Sharing in TanStack Query?
- 23.Warum werden Query-Key-Factories empfohlen?
- 24.Wie gibt man im Next.js App Router auf dem Server vorgeladene TanStack-Query-Daten an Client-Komponenten weiter?
- 25.Warum darf man auf dem Server keinen globalen
QueryClientfür alle Anfragen erzeugen? - 26.Was ändert
useSuspenseQuery? - 27.Was muss man für
useInfiniteQuerykonfigurieren? - 28.Wie bricht man in TanStack Query eine laufende Anfrage ab, wenn eine Query nicht mehr genutzt wird?
- 29.Was bringt die Option
selectvonuseQuery? - 30.Wie macht man ein optimistisches Update in RTK Query?
- 31.Wie entscheidet RTK Query bei Tags auf ID-Ebene, welche getaggten Queries neu geladen werden?
- 32.Wofür nutzt man
transformResponsein einem RTK-Query-Endpunkt? - 33.Wie schreibt man das Ergebnis einer Mutation ohne Neuladen direkt in eine gecachte Query (pessimistisches Update)?
- 34.Können State aus RTK Query und
createSlicein einem Store koexistieren? - 35.Wie macht man ein optimistisches Update mit
mutatevon SWR? - 36.Was bringt
useSWRMutationgegenüberfetchgefolgt vonmutate? - 37.Wie vermeidet SWR das Neurendern einer Komponente, wenn sich unbeteiligte Felder der Antwort ändern?
- 38.Wie gibt man auf dem Server geladene Daten an SWR, damit das erste Client-Rendern sie hat?
- 39.SWR vs. TanStack Query: was ist eine faire Zusammenfassung?
- 40.Warum heißt es, Route-Loader beseitigen „Anfrage-Wasserfälle“ im Vergleich zum Laden in
useEffect? - 41.Wie verhindert man, dass ein Loader nach jeder Action auf der Seite erneut läuft?
- 42.Wie baut man optimistische UI mit einem React-Router-Fetcher?
- 43.Wie streamt man langsame, unkritische Daten aus einem React-Router-Loader?
- 44.Braucht man mit React-Router-Loadern noch eine Client-Cache-Bibliothek (TanStack Query)?
- 45.Wie sollten Validierungsfehler aus einer React-Router-
actionzum Formular gelangen? - 46.Eine Alt-App hält API-Antworten in Redux-Slices mit handgeschriebenen Lade-Flags. Was ist eine pragmatische Migration?
- 47.Wie hält man den Client-State zweier Browser-Tabs synchron (z. B. Logout in einem Tab)?
- 48.Was ist das Hauptrisiko, Serverdaten aus
useQueryin einen Zustand/Redux-Store zu kopieren? - 49.Welcher Ansatz macht State-Logik unabhängig von der Bibliothek am leichtesten unit-testbar?
- 50.Wann ist ein endlicher Automat (z. B. XState) ein besseres Modell als ein Reducer mit Flags?
- 51.Wie schiebt man WebSocket-Updates in einen Cache-Eintrag von RTK Query?
- 52.Wie implementiert man Infinite Scrolling mit einem einzigen Cache-Eintrag in RTK Query?
- 53.Was bringt das Speichern des TanStack-Query-Caches (
persistQueryClient), und worauf muss man achten? - 54.Was passiert mit TanStack-Query-Anfragen, wenn der Browser offline geht (Standard
networkMode: 'online')? - 55.Was ist an diesem Cache-Update falsch?
- 56.Wie sollte man Komponenten mit TanStack Query in Tests aufsetzen?
- 57.Wie gibt man jeder Instanz eines komplexen Widgets einen eigenen Zustand-Store?
- 58.Wie reagiert man auf sehr häufige Zustand-Änderungen (z. B. Zeigerposition mit 60fps), ohne neu zu rendern?
- 59.Wie implementiert man Undo/Redo für einen großen Dokument-State effizient?
- 60.Warum validiert man aus der URL (Suchparameter) gelesenen State mit einem Schema?
- 61.Warum sendet man bei einer optimistischen Anfrage „Bestellung anlegen“, die wiederholt werden kann, einen Idempotency Key mit?
- 62.Wie zeigt man einen globalen Hinweis für alle laufenden React-Router-Fetcher (z. B. mehrere „Like“-Buttons)?
- 63.Was erlaubt die Option
providerfür einen eigenen SWR-Cache? - 64.Was ändert sich typischerweise an Client-State-Bibliotheken, wenn React Server Components Daten auf dem Server laden?
- 65.Warum baut React Redux
useSelectoraufuseSyncExternalStoreWithSelectorauf? - 66.Wie sollten unabhängig deployte Micro-Frontends State wie den aktuellen Nutzer teilen?
- 67.Wann hilft
useSelector(selector, shallowEqual)? - 68.Welcher Ansatz passt zu kollaborativer Bearbeitung, bei der mehrere Nutzer dasselbe Dokument offline und online ändern?
- 69.Wie aktualisiert man ein bearbeitetes Todo in allen gecachten Listen (gefilterte Ansichten) auf einmal?
- 70.Warum können abhängige Queries einen Wasserfall erzeugen, und wie verringert man ihn?
- 71.Wie unterscheidet sich
staleTime: InfinityvonrefetchOnMount: false? - 72.Wann ist ein Event-Bus für Kommunikation zwischen Features besser als geteilter State?
- 73.Warum modelliert man asynchronen State als Discriminated Union statt als getrennte Felder?
- 74.Was ist an
providesTags: (result) => result.map(({ id }) => ({ type: "Post", id }))falsch? - 75.Wo sollte der ungespeicherte Entwurf eines langen Formulars liegen, damit er Neuladen oder Absturz übersteht?