Bei einer controlled Component ist React-State die Quelle der Wahrheit: Das Input liest seinen Wert aus dem State, und jeder Tastendruck läuft durch onChange. Bei einer uncontrolled Component hält das DOM den Wert, und du liest ihn per Ref oder beim Submit aus den Formulardaten. Controlled gibt dir Live-Validierung und abgeleitete UI, uncontrolled bedeutet deutlich weniger Renders und weniger Code bei großen Formularen.
Warum Interviewer das fragen
Der Interviewer prüft, ob du weißt, wo der State tatsächlich liegt, und ob du nicht aus Gewohnheit alles controlled machst. Er will auch Bewusstsein für die Kosten, denn ein controlled Input rendert seinen Teilbaum bei jedem Tastendruck neu, was bei drei Feldern egal und bei achtzig schmerzhaft ist. Eine moderne Antwort erwähnt Form Actions und Libraries, die Inputs bewusst uncontrolled lassen.
So baust du deine Antwort auf
- Definier beides darüber, wo der Wert lebt.
- Sag, was dir jedes bringt, Live-Validierung gegen weniger Renders.
- Nenn deinen Standard und den Punkt, an dem du wechselst.
- Erwähn Form Actions oder eine Formular-Library und warum die zu uncontrolled tendieren.
Beispielantwort
Controlled heißt, React besitzt den Wert: value kommt aus dem State, onChange schreibt zurück, und das Input kann sich ohne Render nicht ändern. Uncontrolled heißt, das DOM besitzt ihn, und ich lese ihn nur, wenn ich ihn brauche, entweder über eine Ref oder aus den abgeschickten Formulardaten. Mein Standard bei kleinen Formularen ist controlled, weil ich meist Validierung während des Tippens will oder ein Feld, das von einem anderen abhängt. Sobald ein Formular grob über fünfzehn bis zwanzig Inputs geht, oder sobald ein Feld bei jedem Tastendruck ein teures Re-Render auslöst, wechsle ich auf uncontrolled und validiere on blur und beim Submit. Genau das machen die gängigen Formular-Libraries unter der Haube auch, sie registrieren Inputs und abonnieren eng, statt das ganze Formular neu zu rendern. Mit den Form Actions aus React 19 gehe ich noch stärker in Richtung uncontrolled, weil die Action die FormData geschenkt bekommt. Für ein simples Anlege- oder Bearbeitungsformular spare ich mir den State komplett und behandle Pending- und Fehlerzustand einfach über useActionState.
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 Warnung gibt React aus, wenn ein Input von uncontrolled auf controlled kippt, und warum?
- Wie würdest du ein uncontrolled Formular beim Submit validieren?
- Wie verändern die Form Actions aus React 19 dein Vorgehen hier?
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