Les hooks React sont une nouvelle façon (encore en cours de développement) d'accéder aux fonctionnalités de base de react comme state
sans avoir à utiliser de classes, dans votre exemple si vous voulez incrémenter un compteur directement dans la fonction handler sans le spécifier directement dans le onClick
prop, vous pourrait faire quelque chose comme:
...
const [count, setCounter] = useState(0);
const [moreStuff, setMoreStuff] = useState(...);
...
const setCount = () => {
setCounter(count + 1);
setMoreStuff(...);
...
};
et onClick:
<button onClick={setCount}>
Click me
</button>
Expliquons rapidement ce qui se passe dans cette ligne:
const [count, setCounter] = useState(0);
useState(0)
retourne un tuple où le premier paramètre count
est l'état actuel du compteur et setCounter
est la méthode qui nous permettra de mettre à jour l'état du compteur. Nous pouvons utiliser la setCounter
méthode pour mettre à jour l'état de count
n'importe où - Dans ce cas, nous l'utilisons à l'intérieur de la setCount
fonction où nous pouvons faire plus de choses; l'idée avec les hooks est que nous sommes en mesure de garder notre code plus fonctionnel et d'éviter les composants basés sur les classes s'ils ne sont pas souhaités / nécessaires.
J'ai écrit un article sur les crochets avec de multiples exemples (y compris les compteurs), comme ce codepen , je utilisais useState
, useEffect
, useContext
et crochets personnalisés . Je pourrais entrer dans plus de détails sur le fonctionnement des hooks sur cette réponse, mais la documentation fait un très bon travail en expliquant en détail le hook d'état et d'autres hooks, j'espère que cela vous aidera.
mise à jour: les Hooks ne sont plus une proposition , depuis la version 16.8 ils sont maintenant disponibles pour être utilisés, il y a une section dans le site de React qui répond à une partie de la FAQ .
useState
est implémenté. Voici la définition à partir de la version 16.9 .