Réponses:
Cela concerne les composants DOM avec état (éléments de formulaire) et les documents React expliquent la différence:
props
et notifie les modifications via des rappels comme onChange
. Un composant parent le «contrôle» en gérant le rappel, en gérant son propre état et en passant les nouvelles valeurs comme accessoires au composant contrôlé. Vous pouvez également appeler cela un "composant stupide".ref
pour trouver sa valeur actuelle lorsque vous en avez besoin. Cela ressemble un peu plus au HTML traditionnel.La plupart des composants de formulaire React natifs prennent en charge une utilisation contrôlée et non contrôlée:
// 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>
Dans la plupart (ou tous) des cas, vous devez utiliser des composants contrôlés .
state
plutôt que props
?
props
. Un composant incontrôlé utiliserait state
pour contrôler la valeur elle-même en interne. C'est la principale différence.
controlled components
( <input type="text" value="value" onChange={handleChangeCallbackFn} />
) par rapport au HTML traditionnel où un élément d'entrée gère sa propre valeur et peut être lu via refs
appelé uncontrolled components
( <value type="text" />
). Les composants contrôlés gèrent leur propre état via setState
ou l'obtiennent de leur composant parent comme accessoires.
defaultValue
par des accessoires, mais qui avertit le contrôleur onBlur
?
<Button onClick={() => console.log("clicked")}>Click</Button>
.