Risposte:
Questo si riferisce ai componenti DOM stateful (elementi del modulo) e i documenti di React spiegano la differenza:
props
e notifica le modifiche tramite callback come onChange
. Un componente genitore lo "controlla" gestendo il callback e gestendo il proprio stato e passando i nuovi valori come props al componente controllato. Potresti anche chiamarlo un "componente stupido".ref
per trovare il suo valore corrente quando ne hai bisogno. Questo è un po 'più simile all'HTML tradizionale.La maggior parte dei componenti del modulo React nativo supporta l'utilizzo sia controllato che non controllato:
// 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>
Nella maggior parte (o in tutti) i casi è necessario utilizzare componenti controllati .
state
piuttosto che props
?
props
. Un componente non state
controllato utilizzerebbe per controllare internamente il valore stesso. Questa è la differenza fondamentale.
controlled components
( <input type="text" value="value" onChange={handleChangeCallbackFn} />
) rispetto all'HTML tradizionale in cui un elemento di input gestisce il proprio valore e può essere letto tramite refs
called uncontrolled components
( <value type="text" />
). I componenti controllati gestiscono il proprio stato tramite setState
o lo ottengono dal componente genitore come oggetti di scena.
defaultValue
attraverso gli oggetti di scena, ma che notifica il controller onBlur
?
<Button onClick={() => console.log("clicked")}>Click</Button>
.