Maison  >  Article  >  interface Web  >  Comment implémenter des mises à jour incrémentielles de données dans React Query ?

Comment implémenter des mises à jour incrémentielles de données dans React Query ?

PHPz
PHPzoriginal
2023-09-28 16:46:41956parcourir

如何在 React Query 中实现数据的增量更新?

Comment implémenter la mise à jour incrémentielle des données dans React Query ?

Avant-propos :
Dans le développement front-end moderne, la mise à jour des données en temps réel est une exigence très importante. React Query est une puissante bibliothèque de gestion de données qui fournit un moyen simple et efficace de gérer les données pour les applications frontales. Lorsque nous utilisons React Query, nous rencontrons souvent des situations dans lesquelles nous devons implémenter des mises à jour incrémentielles, c'est-à-dire mettre à jour uniquement les parties de données nouvellement ajoutées, modifiées ou supprimées. Cet article explique comment implémenter cette fonctionnalité dans React Query et fournit des exemples de code spécifiques.

Étape 1 : Installer et configurer React Query

Tout d'abord, nous devons installer React Query et les packages de dépendances associés. Vous pouvez utiliser npm ou Yarn pour installer :

npm install react-query axios

ou

yarn add react-query axios

Ensuite, nous devons configurer React Query dans le fichier d'entrée de l'application (généralement index.js ou App.js). Tout d'abord, importez les composants ReactQueryClient et ReactQueryProvider :

import { QueryClient, QueryClientProvider } from 'react-query';

Ensuite, créez une instance QueryClient et enveloppez-la dans le composant QueryClientProvider :

const queryClient = new QueryClient();

ReactDOM.render(
  <QueryClientProvider client={queryClient}>
    <App />
  </QueryClientProvider>,
  document.getElementById('root')
);

Maintenant, nous avons installé et configuré React Query, et sommes prêts à l'utiliser dans notre application.

Deuxième étape : Définir la demande de données

Ensuite, nous devons définir notre demande de données. Nous pouvons utiliser axios, une bibliothèque client HTTP populaire, pour envoyer la requête.

Tout d'abord, importez axios :

import axios from 'axios';

Ensuite, définissez une variable apiUrl pour stocker l'URL de notre source de données :

const apiUrl = 'https://api.example.com/data';

Ensuite, nous pouvons utiliser axios pour envoyer une requête GET afin d'obtenir des données :

const fetchData = async () => {
  const response = await axios.get(apiUrl);
  return response.data;
};

Étape 3 : Obtenir données à l'aide de React Query

Maintenant, nous pouvons utiliser le hook useQuery de React Query pour obtenir des données. Utilisez le hook useQuery dans le composant, en transmettant une clé de requête et une fonction de demande de données. La clé de requête est une chaîne qui identifie de manière unique la requête. Lorsque les données changent, React Query met à jour les données en fonction de la clé de requête.

import { useQuery } from 'react-query';

const MyComponent = () => {
  const { data, isLoading, error } = useQuery('data', fetchData);

  if (isLoading) {
    return <div>Loading...</div>;
  }

  if (error) {
    return <div>Error: {error.message}</div>;
  }

  return (
    <ul>
      {data.map((item) => (
        <li key={item.id}>{item.name}</li>
      ))}
    </ul>
  );
};

Dans le code ci-dessus, nous utilisons une clé de requête nommée « data » pour identifier la requête. La fonction fetchData est utilisée pour lancer des requêtes de données.

Étape 4 : Utilisez React Query pour implémenter des mises à jour incrémentielles

La clé pour implémenter des mises à jour incrémentielles est de savoir comment mettre à jour uniquement une partie des données nouvellement ajoutées, modifiées ou supprimées. Dans React Query, nous pouvons utiliser la méthode queryClient.setQueryData() pour mettre à jour manuellement les données.

Tout d'abord, nous devons utiliser le hook useMutation dans le composant pour définir une méthode qui met à jour les données :

import { useMutation } from 'react-query';

const MyComponent = () => {
  const { data, isLoading, error } = useQuery('data', fetchData);
  const mutation = useMutation((updatedData) => {
    queryClient.setQueryData('data', updatedData);
  });

  const handleUpdateData = () => {
    const updatedData = // 在这里根据需要修改 data
    mutation.mutate(updatedData);
  };

  // ...其他代码

  return (
    <div>
      <button onClick={handleUpdateData}>Update Data</button>
    </div>
  );
};

Dans le code ci-dessus, nous utilisons le hook useMutation pour définir une méthode de mutation qui prend les données mises à jour comme paramètre. Nous utilisons ensuite la méthode queryClient.setQueryData() pour mettre à jour les données mises à jour dans la clé de requête 'data'.

Enfin, des mises à jour incrémentielles peuvent être déclenchées dans les composants en appelant la méthode mutation.mutate().

Résumé :

Grâce aux étapes ci-dessus, nous pouvons réaliser des mises à jour incrémentielles des données dans React Query. Tout d’abord, installez et configurez React Query. Ensuite, définissez la fonction de demande de données et la méthode pour mettre à jour les données. Enfin, utilisez les hooks React Query dans le composant pour obtenir les données et déclencher des mises à jour incrémentielles en appelant la méthode mutation.mutate(). De cette manière, nous pouvons réaliser des mises à jour des données en temps réel et améliorer les performances et l’expérience utilisateur de l’application.

Remarque : Afin de simplifier le code, certains ajustements de gestion des erreurs et de structure du code ont été omis de l'exemple ci-dessus. Dans les applications pratiques, nous devons procéder aux ajustements et traitements appropriés en fonction de la situation réelle.

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!

Déclaration:
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