Utilisez React Query et la base de données pour la fusion du cache de données
Introduction :
Dans le développement front-end moderne, la gestion des données est une partie très importante. Afin d'améliorer les performances et l'expérience utilisateur, nous devons généralement mettre en cache les données renvoyées par le serveur et les fusionner avec les données de la base de données locale. React Query est une bibliothèque de mise en cache de données très populaire qui fournit une API puissante pour gérer les requêtes, la mise en cache et la mise à jour des données. Cet article expliquera comment utiliser React Query et une base de données pour la fusion du cache de données, et fournira des exemples de code spécifiques.
Étape 1 : Installer et configurer React Query
Tout d'abord, nous devons installer React Query. Ouvrez un terminal et exécutez la commande suivante :
npm installreact-query
ou
yarn addreact-query
Ensuite, créez un fichier de configuration pour React Query dans notre projet. Créez un fichier nommé react-query-config.js dans le répertoire src et ajoutez le contenu suivant :
import { QueryClient, QueryClientProvider } from 'react-query';
const queryClient = new QueryClient();
export const QueryClientProviderWrapper = ({ children }) => (
{children}
);
Ici, nous créons une instance nommée queryClient et l'attribuons Passed au composant QueryClientProvider. De cette façon, nous pouvons utiliser React Query tout au long du projet.
Étape 2 : Créer une API de données
Nous devons maintenant créer une API de données pour obtenir les données sur le serveur et les mettre en cache dans React Query. Supposons que notre API fournisse une méthode getItems() qui récupère une liste d'éléments et renvoie un tableau contenant tous les éléments. Créez un fichier nommé api.js dans le répertoire src et ajoutez le contenu suivant :
import { queryClient } from './react-query-config';
export const getItems = async () => Récupère les données des éléments du serveur
const réponse = wait fetch('/api/items');
const data = wait réponse.json();
queryClient.setQueryData(' items' , data);
};
Ici, nous utilisons la méthode fetch() pour obtenir des données du serveur et la méthode queryClient.setQueryData() pour mettre en cache les données dans React Query.
Ensuite, nous devons créer une API de base de données pour obtenir des données de la base de données locale. Supposons que notre base de données fournisse une méthode getItemsFromDatabase() pour obtenir une liste des éléments de la base de données et renvoyer un tableau contenant tous les éléments. Créez un fichier nommé database.js dans le répertoire src et ajoutez le contenu suivant :
// Récupère les données des éléments de la base de données
const items = ...
};
Dans les applications réelles, vous devez implémenter la méthode getItemsFromDatabase() en fonction du type de base de données et de la bibliothèque correspondante que vous utilisez.
Maintenant, nous pouvons utiliser React Query et l'API de base de données pour fusionner les données. Dans notre composant, nous utilisons le hook useQuery() pour obtenir les données et le hook useMutation() pour gérer les mises à jour des données. Voici un exemple de composant de base :
import { getItems, getItemsFromDatabase } from './api';
const { data: serverData } = useQuery('items', getItems);
const { data: databaseData } = useQuery('itemsFromDatabase', getItemsFromDatabase);
// Utilisez le hook useMutation pour traiter les données update
// 在这里使用数据库API更新数据
// Fusionner les données du cache et les données de la base de données
const mergedData = [...serverData, ...databaseData];
return (
<div> {mergedData.map((item) => ( <div key={item.id}>{item.name}</div> ))} </div>
);
};Ici, nous utilisons deux hooks useQuery pour obtenir respectivement les données du serveur et de la base de données (en passant 'items' et 'itemsFromDatabase' comme clés de requête). Nous utilisons ensuite le hook useMutation pour gérer les mises à jour des données. Enfin, nous fusionnons les données du cache avec les données de la base de données et les affichons dans le composant.
Résumé :
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!