Les hooks personnalisés dans React sont une fonctionnalité puissante qui vous permet d'extraire et de réutiliser la logique sur plusieurs composants. Ils vous permettent d'encapsuler une logique avec état complexe, rendant vos composants plus propres et plus faciles à entretenir. Voici un aperçu rapide et un exemple de la façon de créer et d’utiliser des hooks personnalisés.
Un hook personnalisé est essentiellement une fonction JavaScript dont le nom commence par use et qui peut appeler d'autres hooks à l'intérieur. Voici un exemple simple de hook personnalisé qui gère un compteur :
import { useState } from 'react'; // Custom Hook: useCounter function useCounter(initialValue = 0) { const [count, setCount] = useState(initialValue); const increment = () => setCount(c => c 1); const decrement = () => setCount(c => c - 1); const reset = () => setCount(initialValue); return { count, increment, decrement, reset }; } export default useCounter;
Vous pouvez utiliser le hook useCounter dans n'importe quel composant fonctionnel :
import React from 'react'; import useCounter from './useCounter'; function CounterComponent() { const { count, increment, decrement, reset } = useCounter(0); return (); } export default CounterComponent;Count: {count}
Voici un hook personnalisé plus avancé pour récupérer des données :
import { useState, useEffect } from 'react'; function useFetch(url) { const [data, setData] = useState(null); const [loading, setLoading] = useState(true); const [error, setError] = useState(null); useEffect(() => { const fetchData = async () => { try { const response = await fetch(url); if (!response.ok) throw new Error('Network response was not ok'); const result = await response.json(); setData(result); } catch (error) { setError(error); } finally { setLoading(false); } }; fetchData(); }, [url]); return { data, loading, error }; } export default useFetch;
Vous pouvez utiliser le hook useFetch dans un composant pour récupérer des données :
import React from 'react'; import useFetch from './useFetch'; function DataFetchingComponent() { const { data, loading, error } = useFetch('https://api.example.com/data'); if (loading) return); } exporter le DataFetchingComponent par défaut ;Loading...
; if (error) returnError: {error.message}
; return (); } export default DataFetchingComponent;Data:
{JSON.stringify(data, null, 2)}
Les hooks personnalisés sont un excellent moyen d'encapsuler la logique et de partager des fonctionnalités entre vos composants de manière propre et maintenable.
Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3