Différences
Ci-dessous, les différences entre deux révisions de la page.
| Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
| web:framework:react [2024/04/10 09:40] – jcheron | web:framework:react [2025/08/12 02:35] (Version actuelle) – modification externe 127.0.0.1 | ||
|---|---|---|---|
| Ligne 205: | Ligne 205: | ||
| </ | </ | ||
| + | |||
| + | ===== Hooks React ===== | ||
| + | Les hooks React sont des fonctions introduites à partir de React 16.8 permettant d' | ||
| + | |||
| + | ==== Hooks de base ==== | ||
| + | |||
| + | ===== useState ===== | ||
| + | |||
| + | Permet de gérer un état local dans un composant fonctionnel. | ||
| + | |||
| + | <sxh js> | ||
| + | import { useState } from " | ||
| + | |||
| + | function Counter() { | ||
| + | const [count, setCount] = useState(0); | ||
| + | |||
| + | return ( | ||
| + | <button onClick={() => setCount(count + 1)}> | ||
| + | ); | ||
| + | } | ||
| + | </ | ||
| + | |||
| + | ===== useEffect ===== | ||
| + | |||
| + | |||
| + | Permet d' | ||
| + | Exemples : | ||
| + | * appels API, | ||
| + | * écouteurs d’événements, | ||
| + | * manipulation du DOM... | ||
| + | |||
| + | <sxh js> | ||
| + | import { useState, useEffect } from " | ||
| + | |||
| + | function Timer() { | ||
| + | const [seconds, setSeconds] = useState(0); | ||
| + | |||
| + | useEffect(() => { | ||
| + | const interval = setInterval(() => { | ||
| + | setSeconds(s => s + 1); | ||
| + | }, 1000); | ||
| + | |||
| + | return () => clearInterval(interval); | ||
| + | }, []); // Dépendances vides = effet exécuté une seule fois au montage | ||
| + | |||
| + | return < | ||
| + | } | ||
| + | </ | ||
| + | |||
| + | ===== useContext ===== | ||
| + | |||
| + | Permet d' | ||
| + | |||
| + | <sxh js> | ||
| + | import { useContext, createContext } from " | ||
| + | |||
| + | const ThemeContext = createContext(" | ||
| + | |||
| + | function ThemedButton() { | ||
| + | const theme = useContext(ThemeContext); | ||
| + | |||
| + | return <button style={{ background: theme === " | ||
| + | Thème : {theme} | ||
| + | </ | ||
| + | } | ||
| + | </ | ||
| ===== Composants ===== | ===== Composants ===== | ||
| * [[https:// | * [[https:// | ||