Was sind gesteuerte und unkontrollierte Komponenten in ReactJS? Wie unterscheiden sie sich voneinander?
100
Was sind gesteuerte und unkontrollierte Komponenten in ReactJS? Wie unterscheiden sie sich voneinander?
Antworten:
Dies bezieht sich auf statusbehaftete DOM-Komponenten (Formularelemente), und die React-Dokumente erläutern den Unterschied:
props
und Änderungen durch Rückrufe wie benachrichtigtonChange
. Eine übergeordnete Komponente "steuert" sie, indem sie den Rückruf behandelt, ihren eigenen Status verwaltet und die neuen Werte als Requisiten an die gesteuerte Komponente übergibt. Sie können dies auch als "dumme Komponente" bezeichnen.ref
, um den aktuellen Wert bei Bedarf zu ermitteln. Dies ist ein bisschen mehr wie traditionelles HTML.Die meisten nativen React-Formularkomponenten unterstützen sowohl die kontrollierte als auch die unkontrollierte Verwendung:
In den meisten (oder allen) Fällen sollten Sie kontrollierte Komponenten verwenden .
quelle
state
eher durchgenommen alsprops
?props
. Eine unkontrollierte Komponente würdestate
den Wert selbst intern steuern. Dies ist der Hauptunterschied.controlled components
(<input type="text" value="value" onChange={handleChangeCallbackFn} />
) bezeichnet werden, im Vergleich zu herkömmlichem HTML, bei dem ein Eingabeelement seinen eigenen Wert verarbeitet und überrefs
aufgerufeneuncontrolled components
(<value type="text" />
) gelesen werden kann . Kontrollierte Komponenten verwalten ihren eigenen Status übersetState
oder erhalten ihn von ihrer übergeordneten Komponente als Requisiten.defaultValue
über Requisiten erhält , aber den Controller benachrichtigtonBlur
?<Button onClick={() => console.log("clicked")}>Click</Button>
.quelle