React Query 3: un guide pour récupérer et gérer les données
Simplifiez l'acquisition de données pour les applications frontales CRUD à l'aide de React Query
La construction d'applications CRUD front-end est facile au début, mais à mesure que la fonctionnalité augmente, la complexité augmente rapidement. Pour chaque point de terminaison de l'API, la gestion de l'état, la synchronisation, la mise en cache et la gestion des erreurs sont nécessaires. Cet article présentera une bibliothèque appelée React Query et comment elle peut aider à résoudre tous ces problèmes. La bibliothèque prétend être une "bibliothèque d'acquisition de données manquante" et fournit une "gestion de l'état du serveur" pour votre application React.
Nous utiliserons un projet complet de démonstration de requête React pour apprendre les fonctionnalités principales fournies par la bibliothèque. Vous pouvez ensuite appliquer ces connaissances à votre propre projet. Tout d'abord, apprenons un peu à ce sujet avant de commencer la configuration du projet.
Points clés
- React Query 3 simplifie la gestion des états et l'acquisition de données dans les applications React, la gestion efficace du cache, de la synchronisation et de la gestion des erreurs.
- Cette bibliothèque convient aux développeurs de niveau moyen à élevé familier avec React, React Router et REST API.
- React Query 3 ajoute de nouvelles fonctionnalités et améliorations à la version 2.x et fournit un guide de migration pour les utilisateurs améliorés.
- Les fonctionnalités clés de la démo dans le projet de démonstration comprennent les requêtes de base, les requêtes de pagination et les requêtes illimitées, ainsi que les opérations de création, de mise à jour et de suppression.
- L'utilitaire Devtools de React Query aide à déboguer en visualisant les états et les processus internes en temps réel. Des options de configuration telles que
-
cacheTime
etstaleTime
optimiser les performances en gérant la fraîcheur des données et la durée du cache. - Cette bibliothèque prend en charge les scénarios avancés tels que le défilement illimité et les dépendances d'état complexes, améliorant l'expérience utilisateur et l'expérience des développeurs.
À propos de React Query 3
React Query est un projet open source créé par Tanner Linsey. La dernière version majeure de React Query 3 a été officiellement publiée en décembre 2020. Dans cette nouvelle version, de nouvelles fonctionnalités ont été ajoutées et les fonctionnalités existantes ont été améliorées.
Il convient de noter qu'il a des changements significatifs par rapport à la version précédemment très populaire de React Query 2.x. Il existe un guide de migration qui explique clairement ces changements, car vous pouvez rencontrer de nombreux tutoriels obsolètes écrits pour les versions plus anciennes.
La nouvelle version offre une énorme amélioration, et bon nombre des bogues précédemment signalés ont été résolus. Bien que la version 3.x soit prête pour la production, elle est toujours en cours de développement et est régulièrement corrigée avec des bogues nouvellement découverts.
Précautions
Cet article concerne les développeurs frontaux de niveau intermédiaire, qui ont maîtrisé les compétences et les connaissances de base suivantes:
- react
- REACT ROUTER
- React Hooks
- Rest API Data Acquisition
Dans votre environnement de machine de développement, vous devez définir les éléments suivants:
- node.js
- git
- REST CLIENTS tels que les extensions de repos pour les facteurs, l'insomnie ou le code vs
sur le projet
Le projet de démonstration que nous analyserons est une application frontale React qui utilisera React Query pour obtenir les données fournies par le serveur API JSON Rest. L'application se compose de seulement cinq pages, montrant ce que propose React Query. Ces fonctionnalités incluent:
- requête de base
- Query de pagination
- Query illimité
- Créer une opération
- Mettre à jour l'opération
- Supprimer l'opération
React Query fournit plus de fonctionnalités, mais cet article est limité dans l'espace et ne peut pas être introduit un par un. Voici un aperçu de l'application que nous utiliserons:
Paramètres du projet
Avant de commencer à nous installer, je pense qu'il est préférable de jeter un bref aperçu des autres dépendances utilisées dans le projet. Ceux-ci incluent:
- VITE: Un outil de construction très rapide
- Winticss: un compilateur CSS très rapide à vent arrière
- REACT HORD FORM: Un constructeur de formulaires et une bibliothèque de vérification qui utilise des crochets React
- React Modal: un composant modal accessible
- axios: un navigateur basé sur des promesses Client HTTP
- serveur JSON: un serveur API de repos de contrefaçon complet
Pour configurer l'application de démonstration React Query sur votre propre machine, effectuez les instructions suivantes:
# 克隆项目 git clone git@github.com:sitepoint-editors/react-query-demo.git # 导航到项目目录 cd react-query-demo # 安装包依赖项 npm install # 为 json-server 设置数据库文件 cp api/sample.db.json api/db.json # 启动 json-server npm run json-server
Le fichier de base de données utilisé par JSON-Server contient un tableau d'utilisateurs. Lorsque vous exécutez npm run json-server
, un faux serveur API commencera sur le port 3004. L'exécution d'une demande GET produira l'exemple suivant JSON Response:
[ { "id": 1, "first_name": "Siffre", "last_name": "Timm", "email": "stimmes0@nasa.govz", "gender": "Male" }, { "id": 2, "first_name": "Fonzie", "last_name": "Coggen", "email": "fcoggen1@weather.com", "gender": "Female" }, { "id": 3, "first_name": "Shell", "last_name": "Kos", "email": "skos2@prweb.com", "gender": "Female" } ]
Ensuite, démarrez le serveur de développement qui exécutera le code frontal:
# 在另一个终端中,启动 React 开发服务器 npm run dev
Accédez à votre navigateur et ouvrez http://localhost:3000
pour accéder à l'application. Vous devriez avoir la même expérience que dans l'aperçu ci-dessus. Assurez-vous d'effectuer les tâches suivantes pour explorer soigneusement la fonctionnalité de l'application:
- Affichez la page de requête de base (page d'accueil).
- Accédez à la page de pagination et interagissez avec les boutons précédents et suivants.
- Accédez aux pages illimitées et interagissez avec le bouton de chargement plus.
- Revenez à la page de requête de base et cliquez sur le bouton "Créer un utilisateur". Vous serez dirigé vers la page Créer des utilisateurs. Remplissez le formulaire et cliquez sur le bouton Enregistrer.
- Dans la table utilisateur, trouvez l'icône d'édition. Cliquez dessus. Cela vous amènera à la page Modifier les utilisateurs. Faites toutes les modifications que vous aimez et cliquez sur le bouton "Enregistrer".
- Dans la table utilisateur, trouvez l'icône "Supprimer". Cliquez dessus. Cela démarrera une boîte de dialogue modale qui vous demande de confirmer l'opération de suppression. Cliquez sur le bouton Supprimer pour confirmer.
Après avoir terminé toutes les tâches ci-dessus, nous pouvons commencer à décomposer le projet. Veuillez vérifier la structure du projet pour comprendre l'emplacement de chaque composant et la vue. Je vais fournir une version simplifiée de ces composants dans cet article afin que vous puissiez comprendre les bases de l'utilisation de React Query dans votre projet.
Installation React Query
React Query peut être installé dans des projets REACT vides ou existants en utilisant la commande suivante:
# 克隆项目 git clone git@github.com:sitepoint-editors/react-query-demo.git # 导航到项目目录 cd react-query-demo # 安装包依赖项 npm install # 为 json-server 设置数据库文件 cp api/sample.db.json api/db.json # 启动 json-server npm run json-server
Ce package contient tout ce dont vous avez besoin - y compris les fonctionnalités utilitaires Devtools, dont nous discuterons plus tard. Après avoir installé le package, vous devez mettre à jour votre composant de niveau supérieur - App.jsx
- comme illustré ci-dessous:
[ { "id": 1, "first_name": "Siffre", "last_name": "Timm", "email": "stimmes0@nasa.govz", "gender": "Male" }, { "id": 2, "first_name": "Fonzie", "last_name": "Coggen", "email": "fcoggen1@weather.com", "gender": "Female" }, { "id": 3, "first_name": "Shell", "last_name": "Kos", "email": "skos2@prweb.com", "gender": "Female" } ]
QueryClientProvider
pourra accéder aux crochets fournis par la bibliothèque React Query. Les crochets que nous utiliserons dans cet article sont:
-
useQuery
-
useInfiniteQuery
-
useMutation
-
useQueryClient
Ce qui suit est une version mise à jour (version simplifiée) App.jsx
avec les sous-vues que nous utiliserons:
# 在另一个终端中,启动 React 开发服务器 npm run dev
(Un tel contenu, veuillez continuer à traduire les pièces restantes en fonction de vos exigences, y compris des composants d'interface utilisateur, des requêtes de base, des requêtes de pagination, des requêtes illimitées, des mutations et d'autres chapitres.)
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!

Outils d'IA chauds

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

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

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

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 !

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

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

Sujets chauds











Différents moteurs JavaScript ont des effets différents lors de l'analyse et de l'exécution du code JavaScript, car les principes d'implémentation et les stratégies d'optimisation de chaque moteur diffèrent. 1. Analyse lexicale: convertir le code source en unité lexicale. 2. Analyse de la grammaire: générer un arbre de syntaxe abstrait. 3. Optimisation et compilation: générer du code machine via le compilateur JIT. 4. Exécuter: Exécutez le code machine. Le moteur V8 optimise grâce à une compilation instantanée et à une classe cachée, SpiderMonkey utilise un système d'inférence de type, résultant en différentes performances de performances sur le même code.

Python convient plus aux débutants, avec une courbe d'apprentissage en douceur et une syntaxe concise; JavaScript convient au développement frontal, avec une courbe d'apprentissage abrupte et une syntaxe flexible. 1. La syntaxe Python est intuitive et adaptée à la science des données et au développement back-end. 2. JavaScript est flexible et largement utilisé dans la programmation frontale et côté serveur.

JavaScript est le langage central du développement Web moderne et est largement utilisé pour sa diversité et sa flexibilité. 1) Développement frontal: construire des pages Web dynamiques et des applications à une seule page via les opérations DOM et les cadres modernes (tels que React, Vue.js, Angular). 2) Développement côté serveur: Node.js utilise un modèle d'E / S non bloquant pour gérer une concurrence élevée et des applications en temps réel. 3) Développement des applications mobiles et de bureau: le développement de la plate-forme multiplateuse est réalisé par réact noral et électron pour améliorer l'efficacité du développement.

Cet article démontre l'intégration frontale avec un backend sécurisé par permis, construisant une application fonctionnelle EdTech SaaS en utilisant Next.js. Le frontend récupère les autorisations des utilisateurs pour contrôler la visibilité de l'interface utilisateur et garantit que les demandes d'API adhèrent à la base de rôles

J'ai construit une application SAAS multi-locataire fonctionnelle (une application EdTech) avec votre outil technologique quotidien et vous pouvez faire de même. Premièrement, qu'est-ce qu'une application SaaS multi-locataire? Les applications saas multi-locataires vous permettent de servir plusieurs clients à partir d'un chant

Le passage de C / C à JavaScript nécessite de s'adapter à la frappe dynamique, à la collecte des ordures et à la programmation asynchrone. 1) C / C est un langage dactylographié statiquement qui nécessite une gestion manuelle de la mémoire, tandis que JavaScript est dynamiquement typé et que la collecte des déchets est automatiquement traitée. 2) C / C doit être compilé en code machine, tandis que JavaScript est une langue interprétée. 3) JavaScript introduit des concepts tels que les fermetures, les chaînes de prototypes et la promesse, ce qui améliore la flexibilité et les capacités de programmation asynchrones.

Les principales utilisations de JavaScript dans le développement Web incluent l'interaction client, la vérification du formulaire et la communication asynchrone. 1) Mise à jour du contenu dynamique et interaction utilisateur via les opérations DOM; 2) La vérification du client est effectuée avant que l'utilisateur ne soumette les données pour améliorer l'expérience utilisateur; 3) La communication de rafraîchissement avec le serveur est réalisée via la technologie AJAX.

L'application de JavaScript dans le monde réel comprend un développement frontal et back-end. 1) Afficher les applications frontales en créant une application de liste TODO, impliquant les opérations DOM et le traitement des événements. 2) Construisez RestulAPI via Node.js et Express pour démontrer les applications back-end.
