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 .
stateeher durchgenommen als props?
props. Eine unkontrollierte Komponente würde stateden 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 refsaufgerufene uncontrolled components( <value type="text" />) gelesen werden kann . Kontrollierte Komponenten verwalten ihren eigenen Status über setStateoder 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>.