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 statesans 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 onClickprop, 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 countest l'état actuel du compteur et setCounterest la méthode qui nous permettra de mettre à jour l'état du compteur. Nous pouvons utiliser la setCounterméthode pour mettre à jour l'état de countn'importe où - Dans ce cas, nous l'utilisons à l'intérieur de la setCountfonction 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, useContextet 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 .
useStateest implémenté. Voici la définition à partir de la version 16.9 .