Schrittweise, und nur dort, wo es etwas bringt. Klassen und Funktionskomponenten funktionieren problemlos nebeneinander, ein Big-Bang-Rewrite ist also unnötig. Konvertier zuerst Blattkomponenten, zieh geteilte Logik aus Higher Order Components und Render Props in Custom Hooks, und lass Error Boundaries Klassen, denn das müssen sie weiterhin sein. Häng jede Konvertierung an Arbeit, die ohnehin ansteht, mit Tests auf Verhalten statt auf Implementierung.
Warum Interviewer das fragen
Das ist eine Urteilsfrage im Migrationskostüm. Der Interviewer will sehen, ob du ein Quartal für ein Rewrite ohne sichtbaren Nutzen verbrennst oder einen inkrementellen Weg findest. Er prüft auch praktisches Wissen: welche Lifecycle-Methoden sauber auf Effects abbilden, welche nicht, dass Error Boundaries nicht konvertierbar sind, und wie du ohne volle Testabdeckung Regressionen vermeidest.
So baust du deine Antwort auf
- Lehn das Big-Bang-Rewrite ab und sag, warum inkrementell hier funktioniert.
- Gib deine Reihenfolge: Blätter zuerst, geteilte Logik in Custom Hooks.
- Nenn die Teile, die sich nicht sauber konvertieren lassen.
- Erklär, wie du gegen Regressionen absicherst und Fortschritt misst.
Beispielantwort
Ich würde es nicht als Projekt machen, sondern als Gewohnheit. Klassen und Funktionskomponenten sitzen friedlich nebeneinander, es gibt also keinen Zwang, alles zu konvertieren, und ein Rewrite ohne Nutzen für den User ist schwer zu verkaufen und ein hervorragender Weg, Bugs einzubauen. Die Regel wird also: Wenn du eine Datei ohnehin änderst und sie ein Blatt oder fast ein Blatt ist, konvertier sie. Der eigentliche Gewinn sind ohnehin nicht die Komponenten, sondern die geteilte Logik, die in Higher Order Components und Render Props feststeckt, denn daraus werden Custom Hooks, die alle nutzen können. Zur Abbildung: componentDidMount und componentWillUnmount werden ein Effect mit Cleanup, componentDidUpdate zerfällt meist nach Zuständigkeit in mehrere Effects, und getDerivedStateFromProps entpuppt sich fast immer als abgeleiteter State, den man schlicht während des Renders berechnen sollte. Error Boundaries bleiben Klassen, daran hat sich nichts geändert. Bevor ich etwas Nichttriviales konvertiere, will ich Tests auf Verhaltensebene darum herum, die prüfen, was der User sieht, statt internen State, damit die Konvertierung nachweislich neutral ist.
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
- Welche Lifecycle-Methoden haben kein sauberes Hook-Äquivalent?
- Wie würdest du eine Higher Order Component konvertieren, die vierzig Screens umhüllt?
- Wie verhinderst du, dass das Team halb migriert und dann stehen bleibt?
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