Séparation des événements et des Effets
20 min
1 exercice
Niveau 10
Séparer les effets et les événements
- Voici un composant
ClickCounter.js
qui mélange logique d'événement et effets dans un même bloc. Cela cause des comportements imprévisibles :- L’effet est exécuté chaque fois que le compteur change, alors qu’il devrait être déclenché uniquement lorsque le composant est monté.
- La gestion des clics est incluse dans l’effet, ce qui complique le débogage.
- Séparez les événements et les effets dans le fichier
ClickCounter.js
pour corriger ces problèmes.
Code de départ
import React, { useState, useEffect } from 'react';
function ClickCounter() {
const [count, setCount] = useState(0);
useEffect(() => {
document.addEventListener('click', () => {
setCount(count + 1);
});
return () => {
document.removeEventListener('click', () => {
setCount(count + 1);
});
};
}, [count]);
return <h1>Nombre de clics : {count}</h1>;
}
export default ClickCounter;
Rendu attendu
Besoin d'aide ?
Rejoignez notre communauté officielle et ne restez plus seul à bloquer sur un problème !