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/10/12 16:33] – modification externe 127.0.0.1 | 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:// |