Maison > interface Web > js tutoriel > le corps du texte

Mise en cache des données dans React : améliorer les performances et l'expérience utilisateur

DDD
Libérer: 2024-09-30 14:23:03
original
946 Les gens l'ont consulté

Caching Data in React: Boosting Performance and User Experience

La mise en cache des données dans React peut améliorer considérablement les performances et l'expérience utilisateur en réduisant le besoin de récupérer les mêmes données plusieurs fois. Voici plusieurs approches pour implémenter la mise en cache des données dans React :

1. Utiliser les bibliothèques de gestion d'état

  • Redux : utilisez Redux pour stocker vos données dans un magasin centralisé. Vous pouvez mettre en cache les réponses de l'API dans l'état Redux et récupérer les données uniquement si elles ne sont pas déjà disponibles.
  • React Query : cette bibliothèque fournit des mécanismes de mise en cache intégrés pour l'état du serveur. Il met automatiquement en cache les réponses de l'API et les récupère si nécessaire.
  • Recoil : Semblable à Redux, Recoil vous permet de gérer l'état global et vous pouvez mettre en œuvre des stratégies de mise en cache avec des sélecteurs.

2. Stockage local ou stockage de session

Vous pouvez mettre en cache les données dans le stockage local ou le stockage de session du navigateur :

const fetchData = async () => {
    const cachedData = localStorage.getItem('myData');
    if (cachedData) {
        return JSON.parse(cachedData);
    }

    const response = await fetch('https://api.example.com/data');
    const data = await response.json();
    localStorage.setItem('myData', JSON.stringify(data));
    return data;
};

// Use it in your component
useEffect(() => {
    const loadData = async () => {
        const data = await fetchData();
        setData(data);
    };
    loadData();
}, []);
Copier après la connexion

3. Logique de mise en cache personnalisée

Vous pouvez implémenter votre propre mécanisme de mise en cache à l'aide d'un objet JavaScript pour stocker des données basées sur des clés uniques :

const cache = {};

const fetchData = async (key) => {
    if (cache[key]) {
        return cache[key];
    }

    const response = await fetch(`https://api.example.com/data/${key}`);
    const data = await response.json();
    cache[key] = data; // Cache the data
    return data;
};

// Use it in your component
useEffect(() => {
    const loadData = async () => {
        const data = await fetchData('myKey');
        setData(data);
    };
    loadData();
}, []);
Copier après la connexion

4. Travailleurs de services

Pour une mise en cache plus avancée, vous pouvez utiliser des service Workers pour mettre en cache les réponses de l'API et les servir directement à partir du cache.

5. Mémoisation avec useMemo ou useCallback

Si vous avez affaire à des données calculées dérivées de données récupérées, utilisez useMemo pour mémoriser les valeurs :

const memoizedValue = useMemo(() => computeExpensiveValue(data), [data]);
Copier après la connexion

Conclusion

Choisissez la stratégie de mise en cache qui correspond le mieux aux besoins de votre application, en tenant compte de facteurs tels que la fraîcheur des données, la complexité et l'expérience utilisateur. Les bibliothèques comme React Query peuvent simplifier la mise en cache et la récupération de données, tandis que les méthodes manuelles vous donnent plus de contrôle.

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!

source:dev.to
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!