Salut à tous, c’est Ismail ! Après avoir exploré les composants, les props, le state et la gestion des événements, il est temps d’aborder un sujet incontournable en React moderne : les Hooks.
Quand j’ai commencé à utiliser React, je voyais souvent des discussions sur les Hooks et leur impact sur le développement. Maintenant que je les ai testés, je comprends pourquoi ils ont révolutionné la façon dont on écrit du code en React.
Pourquoi les Hooks ?
Avec les Hooks, on peut gérer le state et d’autres fonctionnalités React directement dans les composants fonctionnels, rendant le code plus propre et plus facile à lire.
Les Hooks de Base
Voici les trois Hooks fondamentaux que tout développeur React doit connaître :
useState
– Gérer l’état local
Le Hook useState
permet d’ajouter un state local à un composant fonctionnel.
import { useState } from "react";
const Compteur = () => {
const [count, setCount] = useState(0);
return (
<div>
<p>Compteur : {count}</p>
<button onClick={() => setCount(count + 1)}>+1</button>
</div>
);
};
Ici, useState(0)
initialise count
à 0 et setCount
permet de le modifier.
useEffect
– Gérer les effets secondaires
Le Hook useEffect
est utilisé pour gérer les effets secondaires comme les appels API, les abonnements ou les modifications du DOM.
import { useState, useEffect } from "react";
const Horloge = () => {
const [heure, setHeure] = useState(new Date().toLocaleTimeString());
useEffect(() => {
const interval = setInterval(() => {
setHeure(new Date().toLocaleTimeString());
}, 1000);
return () => clearInterval(interval);
}, []);
return <p>Heure actuelle : {heure}</p>;
};
L’effet s’exécute après chaque rendu, et le return
permet de nettoyer l’intervalle pour éviter les fuites mémoire.
useContext
– Simplifier le partage de données
Avec useContext
, on peut éviter le "prop drilling" (passer des props à plusieurs niveaux) et accéder directement aux données d’un Contexte React.
import { createContext, useContext } from "react";
const ThemeContext = createContext("light");
const BoutonThematique = () => {
const theme = useContext(ThemeContext);
return <button className={theme}>Thème actuel : {theme}</button>;
};
const App = () => (
<ThemeContext.Provider value="dark">
<BoutonThematique />
</ThemeContext.Provider>
);
Ici, useContext
permet au bouton d’accéder directement au contexte du thème sans passer par des props.
Mon Avis sur les Hooks
Après avoir expérimenté les Hooks, voici ce que j’en retiens :
Code plus simple et plus lisible : Plus besoin des composants classes lourds.
Réutilisation facilitée : On peut créer ses propres Hooks personnalisés.
Meilleure organisation : Séparation claire entre logique et affichage.
Si tu débutes avec les Hooks, mon conseil est de bien comprendre useState
et useEffect
avant d’aller plus loin. Une fois à l’aise, explore useContext
, useReducer
et d’autres Hooks avancés pour optimiser ton code.
La semaine prochaine, je parlerai de React Router et de la navigation entre les pages.
Source :
-
REACT, React.dev, https://react.dev/reference/react/hooks (Page consulté le 20 février 2025)
-
W3Schools, W3Schools, https://www.w3schools.com/react/react_hooks.asp (Page consulté le 20 février 2025)
-
W3Schools, W3Schools, https://www.w3schools.com/react/react_usestate.asp (Page consulté le 20 février 2025)
-
W3Schools, W3Schools, https://www.w3schools.com/react/react_useeffect.asp (Page consulté le 20 février 2025)
-
W3Schools, W3Schools, https://www.w3schools.com/react/react_usecontext.asp (Page consulté le 20 février 2025)
Commentaires