Antworten:
Dies bezieht sich auf statusbehaftete DOM-Komponenten (Formularelemente), und die React-Dokumente erläutern den Unterschied:
props
und Änderungen durch Rückrufe wie benachrichtigt onChange
. 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:
// Controlled:
<input type="text" value={value} onChange={handleChange} />
// Uncontrolled:
<input type="text" defaultValue="foo" ref={inputRef} />
// Use `inputRef.current.value` to read the current value of <input>
In den meisten (oder allen) Fällen sollten Sie kontrollierte Komponenten verwenden .
state
eher durchgenommen als props
?
props
. Eine unkontrollierte Komponente würde state
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 über refs
aufgerufene uncontrolled components
( <value type="text" />
) gelesen werden kann . Kontrollierte Komponenten verwalten ihren eigenen Status über setState
oder erhalten ihn von ihrer übergeordneten Komponente als Requisiten.
defaultValue
über Requisiten erhält , aber den Controller benachrichtigt onBlur
?
<Button onClick={() => console.log("clicked")}>Click</Button>
.