Maison interface Web js tutoriel Stratégies de performances frontales pour optimiser les requêtes de base de données dans React Query

Stratégies de performances frontales pour optimiser les requêtes de base de données dans React Query

Sep 26, 2023 am 11:38 AM
优化 数据库查询 react query

在 React Query 中优化数据库查询的前端性能策略

Stratégies de performances front-end pour optimiser les requêtes de base de données dans React Query

Dans le développement front-end moderne, nous devons souvent interagir avec la base de données back-end pour obtenir les données nécessaires au rendu de la page. Cependant, des requêtes fréquentes dans la base de données peuvent entraîner des problèmes de performances, en particulier lorsque la page doit restituer de grandes quantités de données. Dans ce cas, nous pouvons utiliser React Query pour optimiser les performances frontales des requêtes de base de données.

React Query est une bibliothèque JavaScript permettant de gérer les requêtes de données et l'état. Il fournit un moyen simple et basé sur des hooks d'interroger et de mettre en cache des données. En utilisant React Query, nous pouvons réduire le nombre de demandes de données et la complexité du partage de données entre les composants.

Alors, comment optimiser les performances front-end des requêtes de base de données dans React Query ? Ci-dessous, nous explorerons quelques stratégies spécifiques et donnerons des exemples de code.

  1. Mise en cache des données

React Query dispose d'un mécanisme de mise en cache des données intégré qui peut mettre en cache les données obtenues en mémoire pour une réutilisation ultérieure. De cette façon, la prochaine fois que les mêmes données seront interrogées, il n'est pas nécessaire de renvoyer la requête à la base de données principale, améliorant ainsi les performances.

Voici un exemple qui montre comment utiliser le mécanisme de mise en cache dans React Query :

import { useQuery } from 'react-query';

const fetchUserData = async (userId) => {
  const response = await fetch(`/api/users/${userId}`);
  const data = await response.json();
  return data;
};

const UserProfile = ({ userId }) => {
  const { data } = useQuery(['user', userId], () => fetchUserData(userId));
  
  // 渲染用户数据
  return (
    <div>
      <h1>{data.name}</h1>
      <p>{data.bio}</p>
    </div>
  );
};
Copier après la connexion

Dans cet exemple, nous utilisons le hook useQuery pour obtenir les données utilisateur et mettre le userId de les données comme clé de requête. React Query mettra automatiquement en cache les résultats de cette requête afin qu'ils puissent être utilisés directement la prochaine fois que vous interrogerez les mêmes données. useQuery 钩子来获取用户数据,并将数据的 userId 作为查询键。React Query 会自动缓存这个查询的结果,以便在下次查询同样的数据时直接使用。

  1. 合并多个查询

有时,我们可能需要同时查询多个数据,例如获取用户的个人信息和订单信息。在这种情况下,我们可以使用 useQueries 钩子来合并多个查询。这样一来,React Query 可以将这些查询同时发送到后端,并在所有查询都完成后返回结果。

下面是一个示例,展示了如何在 React Query 中合并多个查询:

import { useQueries } from 'react-query';

const fetchUserData = async (userId) => {
  const response = await fetch(`/api/users/${userId}`);
  const data = await response.json();
  return data;
};

const fetchOrderData = async (userId) => {
  const response = await fetch(`/api/orders?userId=${userId}`);
  const data = await response.json();
  return data;
};

const UserProfile = ({ userId }) => {
  const queries = useQueries([
    { queryKey: ['user', userId], queryFn: () => fetchUserData(userId) },
    { queryKey: ['orders', userId], queryFn: () => fetchOrderData(userId) },
  ]);

  const userData = queries[0].data;
  const orderData = queries[1].data;

  // 渲染用户数据和订单数据
  return (
    <div>
      <h1>{userData.name}</h1>
      <p>{userData.bio}</p>
      
      <h2>订单信息</h2>
      <ul>
        {orderData.map(order => (
          <li key={order.id}>{order.name}</li>
        ))}
      </ul>
    </div>
  );
};
Copier après la connexion

在这个示例中,我们使用 useQueries 钩子同时发送多个查询,并将查询的结果分别存储在 userDataorderData 变量中。

通过合并多个查询,我们可以减少与后端的交互次数,提高性能。

  1. 预取和更新数据

React Query 还提供了一些钩子和函数,以便在组件初始化时预取数据,并在后续用户操作时更新数据。

例如,我们可以使用 useQueryClient 钩子来获取 QueryClient 实例,并使用其 prefetchQuery 函数来预取数据。这样一来,即使用户尚未点击获取数据的按钮,我们的应用也可以在后台获取数据,并保持最新的状态。

下面是一个示例,展示了如何在 React Query 中使用预取数据:

import { useQuery, useQueryClient } from 'react-query';

const fetchUserData = async (userId) => {
  const response = await fetch(`/api/users/${userId}`);
  const data = await response.json();
  return data;
};

const UserProfile = ({ userId }) => {
  const queryClient = useQueryClient();

  queryClient.prefetchQuery(['user', userId], () => fetchUserData(userId));

  const { data } = useQuery(['user', userId], () => fetchUserData(userId));

  // 渲染用户数据
  return (
    <div>
      <h1>{data.name}</h1>
      <p>{data.bio}</p>
    </div>
  );
};
Copier après la connexion

在这个示例中,我们使用 useQueryClient 钩子获取 QueryClient 实例,并调用 prefetchQuery 函数来预取用户数据。然后,我们使用 useQuery

    Fusionner plusieurs requêtes

    Parfois, nous pouvons avoir besoin d'interroger plusieurs données en même temps, par exemple pour obtenir les informations personnelles de l'utilisateur et les informations de commande. Dans ce cas, nous pouvons utiliser le hook useQueries pour combiner plusieurs requêtes. De cette façon, React Query peut envoyer ces requêtes au backend simultanément et renvoyer les résultats une fois toutes les requêtes terminées.

    Voici un exemple qui montre comment combiner plusieurs requêtes dans React Query :

    rrreee🎜Dans cet exemple, nous utilisons le hook useQueries pour envoyer plusieurs requêtes en même temps et séparer les résultats des requêtes Stockées dans les variables userData et orderData. 🎜🎜En fusionnant plusieurs requêtes, nous pouvons réduire le nombre d'interactions avec le backend et améliorer les performances. 🎜
      🎜Précupérer et mettre à jour les données🎜🎜🎜React Query fournit également des hooks et des fonctions pour préextraire les données lors de l'initialisation du composant et mettre à jour les données lors des opérations utilisateur ultérieures. 🎜🎜Par exemple, nous pouvons utiliser le hook useQueryClient pour obtenir une instance QueryClient et utiliser sa fonction prefetchQuery pour préextraire les données. De cette façon, même si l'utilisateur n'a pas cliqué sur le bouton pour obtenir les données, notre application peut récupérer les données en arrière-plan et les maintenir à jour. 🎜🎜Voici un exemple montrant comment utiliser la prélecture des données dans React Query : 🎜rrreee🎜Dans cet exemple, nous utilisons le hook useQueryClient pour obtenir l'instance QueryClient et appeler prefetchQuery code> fonction pour préextraire les données utilisateur. Ensuite, nous utilisons le hook <code>useQuery pour obtenir les données et les afficher sur la page. 🎜🎜En prélevant les données, nous pouvons fournir des réponses plus rapides lorsque les utilisateurs en ont réellement besoin. 🎜🎜En résumé, en utilisant React Query, nous pouvons optimiser les performances frontales des requêtes de base de données. Nous pouvons mettre en cache des données, combiner plusieurs requêtes pour réduire le nombre d'interactions, pré-extraire des données pour améliorer la vitesse de réponse, et bien plus encore. Ces stratégies peuvent améliorer efficacement les performances front-end et offrir une meilleure expérience utilisateur. 🎜🎜Il est fortement recommandé aux développeurs de choisir de manière flexible la stratégie appropriée en fonction de scénarios commerciaux spécifiques et des exigences de performances lors de l'utilisation de React Query. 🎜

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 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

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

Video Face Swap

Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Interprétation approfondie : Pourquoi Laravel est-il aussi lent qu'un escargot ? Interprétation approfondie : Pourquoi Laravel est-il aussi lent qu'un escargot ? Mar 07, 2024 am 09:54 AM

Laravel est un framework de développement PHP populaire, mais il est parfois critiqué pour sa lenteur comme un escargot. Qu'est-ce qui cause exactement la vitesse insatisfaisante de Laravel ? Cet article fournira une explication détaillée des raisons pour lesquelles Laravel est aussi lent qu'un escargot sous plusieurs aspects, et la combinera avec des exemples de code spécifiques pour aider les lecteurs à mieux comprendre ce problème. 1. Problèmes de performances des requêtes ORM Dans Laravel, ORM (Object Relational Mapping) est une fonctionnalité très puissante qui permet

Décoder les goulots d'étranglement des performances de Laravel : les techniques d'optimisation entièrement révélées ! Décoder les goulots d'étranglement des performances de Laravel : les techniques d'optimisation entièrement révélées ! Mar 06, 2024 pm 02:33 PM

Décoder les goulots d'étranglement des performances de Laravel : les techniques d'optimisation entièrement révélées ! Laravel, en tant que framework PHP populaire, offre aux développeurs des fonctions riches et une expérience de développement pratique. Cependant, à mesure que la taille du projet augmente et que le nombre de visites augmente, nous pouvons être confrontés au défi des goulots d'étranglement en matière de performances. Cet article approfondira les techniques d'optimisation des performances de Laravel pour aider les développeurs à découvrir et à résoudre les problèmes de performances potentiels. 1. Optimisation des requêtes de base de données à l'aide du chargement différé d'Eloquent Lorsque vous utilisez Eloquent pour interroger la base de données, évitez

Optimisation des programmes C++ : techniques de réduction de la complexité temporelle Optimisation des programmes C++ : techniques de réduction de la complexité temporelle Jun 01, 2024 am 11:19 AM

La complexité temporelle mesure le temps d'exécution d'un algorithme par rapport à la taille de l'entrée. Les conseils pour réduire la complexité temporelle des programmes C++ incluent : le choix des conteneurs appropriés (tels que vecteur, liste) pour optimiser le stockage et la gestion des données. Utilisez des algorithmes efficaces tels que le tri rapide pour réduire le temps de calcul. Éliminez les opérations multiples pour réduire le double comptage. Utilisez des branches conditionnelles pour éviter les calculs inutiles. Optimisez la recherche linéaire en utilisant des algorithmes plus rapides tels que la recherche binaire.

Discussion sur la stratégie d'optimisation gc de Golang Discussion sur la stratégie d'optimisation gc de Golang Mar 06, 2024 pm 02:39 PM

Le garbage collection (GC) de Golang a toujours été un sujet brûlant parmi les développeurs. En tant que langage de programmation rapide, le garbage collector intégré de Golang peut très bien gérer la mémoire, mais à mesure que la taille du programme augmente, certains problèmes de performances surviennent parfois. Cet article explorera les stratégies d'optimisation GC de Golang et fournira quelques exemples de code spécifiques. La collecte des déchets dans le garbage collector de Golang Golang est basée sur un balayage de marque simultané (concurrentmark-s

Le goulot d'étranglement des performances de Laravel révélé : la solution d'optimisation révélée ! Le goulot d'étranglement des performances de Laravel révélé : la solution d'optimisation révélée ! Mar 07, 2024 pm 01:30 PM

Le goulot d'étranglement des performances de Laravel révélé : la solution d'optimisation révélée ! Avec le développement de la technologie Internet, l’optimisation des performances des sites Web et des applications est devenue de plus en plus importante. En tant que framework PHP populaire, Laravel peut être confronté à des goulots d'étranglement en termes de performances pendant le processus de développement. Cet article explorera les problèmes de performances que les applications Laravel peuvent rencontrer et fournira des solutions d'optimisation et des exemples de code spécifiques afin que les développeurs puissent mieux résoudre ces problèmes. 1. Optimisation des requêtes de base de données Les requêtes de base de données sont l'un des goulots d'étranglement de performances courants dans les applications Web. exister

Comment optimiser les éléments de démarrage du système WIN7 Comment optimiser les éléments de démarrage du système WIN7 Mar 26, 2024 pm 06:20 PM

1. Appuyez sur la combinaison de touches (touche Win + R) sur le bureau pour ouvrir la fenêtre d'exécution, puis entrez [regedit] et appuyez sur Entrée pour confirmer. 2. Après avoir ouvert l'éditeur de registre, nous cliquons pour développer [HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionExplorer], puis voyons s'il y a un élément Sérialiser dans le répertoire. Sinon, nous pouvons cliquer avec le bouton droit sur Explorateur, créer un nouvel élément et le nommer Sérialiser. 3. Cliquez ensuite sur Sérialiser, puis cliquez avec le bouton droit sur l'espace vide dans le volet de droite, créez une nouvelle valeur de bit DWORD (32) et nommez-la Étoile.

Comment interroger une base de données et afficher les résultats en utilisant PHP Comment interroger une base de données et afficher les résultats en utilisant PHP May 02, 2024 pm 02:15 PM

Étapes pour utiliser PHP pour interroger la base de données et afficher les résultats : se connecter à la base de données ; interroger la base de données ; parcourir les lignes des résultats de la requête et générer des données de colonne spécifiques.

La configuration des paramètres du Vivox100 révélée : Comment optimiser les performances du processeur ? La configuration des paramètres du Vivox100 révélée : Comment optimiser les performances du processeur ? Mar 24, 2024 am 10:27 AM

La configuration des paramètres du Vivox100 révélée : Comment optimiser les performances du processeur ? À l’ère actuelle de développement technologique rapide, les smartphones sont devenus un élément indispensable de notre vie quotidienne. En tant qu'élément important d'un smartphone, l'optimisation des performances du processeur est directement liée à l'expérience utilisateur du téléphone mobile. En tant que smartphone haut de gamme, la configuration des paramètres du Vivox100 a attiré beaucoup d'attention, en particulier l'optimisation des performances du processeur a attiré beaucoup d'attention de la part des utilisateurs. En tant que « cerveau » du téléphone mobile, le processeur affecte directement la vitesse de fonctionnement du téléphone mobile.

See all articles