Wenn sich State ändert, ruft React die Komponentenfunktion erneut auf und erzeugt einen neuen Element-Baum, den es gegen den vorherigen diffed. Es vergleicht Node-Typen und Keys Position für Position: gleicher Typ heißt, React aktualisiert die Props an Ort und Stelle, ein anderer Typ heißt, der alte Teilbaum wird unmounted und ein neuer gemountet. Nur die daraus resultierende minimale Menge an Änderungen wird ins echte DOM committed.
Warum Interviewer das fragen
Das trennt Leute, die Hook-Syntax auswendig gelernt haben, von Leuten, die das Modell darunter verstehen. Der Interviewer will hören, dass du weißt: Rendern ist nicht dasselbe wie ins DOM committen, Elementtyp und Key steuern den Diff, und genau das erklärt echte Bugs wie State, der zurückgesetzt wird, sobald eine Komponente im Baum umzieht. Außerdem baut es Nachfragen zu Memoization und Performance auf.
So baust du deine Antwort auf
- Trenne im ersten Satz die Render-Phase von der Commit-Phase.
- Erklär die Diff-Regeln: gleicher Typ aktualisiert an Ort und Stelle, anderer Typ mountet neu.
- Sag, was Keys leisten und warum sie bei Listen wichtig sind.
- Lande bei einer echten Konsequenz, etwa State-Verlust, wenn ein Teilbaum neu gemountet wird.
Beispielantwort
Wenn sich State ändert, ruft React die Komponentenfunktion noch einmal auf, und daraus entsteht ein neuer Baum aus Elementen. Das ist die Render-Phase, und bis dahin ist das DOM überhaupt nicht angefasst worden. Danach läuft React den neuen Baum gegen den alten ab. An jeder Position schaut es zuerst auf den Elementtyp. Ist es derselbe Typ, ein div bleibt also ein div, behält es die bestehende DOM-Node und den bestehenden State und patcht nur die Props, die sich geändert haben. Ist der Typ anders, wirft es den kompletten Teilbaum weg und baut einen frischen, womit jeder State darin weg ist. Bei Listen nutzt es Keys statt der reinen Position, damit Items sich bewegen können, ohne neu gebaut zu werden. Am Ende werden alle gesammelten Änderungen in einem Commit-Durchgang angewendet. Warum mich das praktisch interessiert: Ich habe mal ein Formular debuggt, das sich bei jedem Tastendruck zurückgesetzt hat, und die Ursache war, dass das Parent es in einer Bedingung gerendert hat, die den Typ des Wrapper-Elements getauscht hat. Wenn du die Diff-Regeln kennst, ist das ein Fünf-Minuten-Fix statt eines verlorenen Nachmittags.
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
- Was passiert mit dem State einer Komponente, wenn sich an derselben Position der Elementtyp ändert?
- Wie batcht React mehrere State-Updates innerhalb eines Event-Handlers?
- Wo ändert der React Compiler etwas daran?
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