Le hook useEffect est un élément fondamental de React, vous permettant d'effectuer des effets secondaires dans les composants fonctionnels. Voici une répartition détaillée :
useEffect(() => { // Your side effect code here return () => { // Cleanup code (optional) }; }, [dependencies]);
Fonction d'effet : Le premier argument est une fonction qui contient le code de l'effet secondaire. Cette fonction s'exécutera une fois le rendu validé à l'écran.
Fonction de nettoyage (facultatif) : La fonction d'effet peut renvoyer une fonction de nettoyage que React appellera lorsque le composant sera démonté ou avant que l'effet ne s'exécute à nouveau. Ceci est utile pour nettoyer les abonnements ou les minuteries.
Tableau de dépendances : Le deuxième argument est un tableau de dépendances. L'effet s'exécute uniquement lorsque l'une des dépendances change. Si vous transmettez un tableau vide ([]), l'effet ne s'exécute qu'une seule fois après le rendu initial (comme composantDidMount).
import React, { useEffect, useState } from 'react'; const DataFetchingComponent = () => { const [data, setData] = useState(null); useEffect(() => { fetch('https://api.example.com/data') .then(response => response.json()) .then(data => setData(data)) .catch(error => console.error('Error fetching data:', error)); }, []); // Runs only once after the initial render return <div>{data ? JSON.stringify(data) : 'Loading...'}</div>; };
import React, { useEffect } from 'react'; const EventListenerComponent = () => { useEffect(() => { const handleResize = () => { console.log('Window resized:', window.innerWidth); }; window.addEventListener('resize', handleResize); // Cleanup function to remove the event listener return () => { window.removeEventListener('resize', handleResize); }; }, []); // Runs only once after the initial render return <div>Resize the window and check the console.</div>; };
import React, { useEffect, useState } from 'react'; const TimerComponent = ({ delay }) => { const [count, setCount] = useState(0); useEffect(() => { const timer = setInterval(() => { setCount(prevCount => prevCount + 1); }, delay); // Cleanup function to clear the timer return () => clearInterval(timer); }, [delay]); // Runs every time `delay` changes return <div>Count: {count}</div>; };
Le hook useEffect est un outil puissant pour gérer les effets secondaires dans les composants fonctionnels, ce qui le rend essentiel pour le développement React moderne. En comprenant sa syntaxe et ses meilleures pratiques, vous pouvez gérer efficacement le comportement des composants et leurs effets secondaires.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!