La récupération de données est fondamentale dans les applications React, alimentant des fonctionnalités telles que le chargement des données utilisateur, le rendu dynamique du contenu, et bien plus encore. React offre un écosystème flexible pour la gestion des données, avec diverses bibliothèques et approches parmi lesquelles choisir en fonction de la complexité et des besoins de performances de votre application. Dans cet article, nous explorerons plusieurs méthodes clés pour la récupération de données dans React, notamment l'API Fetch, Axios, Async/Await, React Query, SWR et GraphQL.
L'API Fetch est une API Web intégrée qui simplifie les requêtes réseau et est largement prise en charge par les navigateurs modernes. Il renvoie une promesse qui se résout avec un objet Response représentant les données de la requête API.
import React, { useEffect, useState } from 'react'; const FetchExample = () => { const [data, setData] = useState([]); const [loading, setLoading] = useState(true); const [error, setError] = useState(null); useEffect(() => { const fetchData = async () => { try { const response = await fetch('https://jsonplaceholder.typicode.com/posts'); if (!response.ok) throw new Error('Network response was not ok'); const data = await response.json(); setData(data); } catch (error) { setError(error.message); } finally { setLoading(false); } }; fetchData(); }, []); return ( <div> {loading ? <p>Loading...</p> : data.map((item) => <p key={item.id}>{item.title}</p>)} {error && <p>Error: {error}</p>} </div> ); };
Axios est un client HTTP basé sur des promesses pour le navigateur et Node.js qui offre plus de fonctionnalités que l'API Fetch, comme des intercepteurs de requêtes et de réponses et la possibilité de transformer les requêtes et les réponses.
import React, { useEffect, useState } from 'react'; import axios from 'axios'; const AxiosExample = () => { const [data, setData] = useState([]); const [loading, setLoading] = useState(true); const [error, setError] = useState(null); useEffect(() => { axios .get('https://jsonplaceholder.typicode.com/posts') .then((response) => { setData(response.data); setLoading(false); }) .catch((error) => { setError(error.message); setLoading(false); }); }, []); return ( <div> {loading ? <p>Loading...</p> : data.map((item) => <p key={item.id}>{item.title}</p>)} {error && <p>Error: {error}</p>} </div> ); };
Avec async et wait, la gestion du code asynchrone en JavaScript est devenue beaucoup plus propre. L'API Fetch et Axios peuvent être utilisés avec la syntaxe async/wait pour rendre le code plus facile à lire.
const fetchData = async () => { try { const response = await fetch('https://jsonplaceholder.typicode.com/posts'); const data = await response.json(); setData(data); } catch (error) { console.error('Error fetching data:', error); } };
React Query gère la mise en cache, la synchronisation et les mises à jour de l'état du serveur, vous permettant de récupérer, mettre à jour et mettre en cache les données en toute simplicité. La mise en cache et la récupération automatiques des données de React Query en font un choix populaire pour les applications complexes.
import React, { useEffect, useState } from 'react'; const FetchExample = () => { const [data, setData] = useState([]); const [loading, setLoading] = useState(true); const [error, setError] = useState(null); useEffect(() => { const fetchData = async () => { try { const response = await fetch('https://jsonplaceholder.typicode.com/posts'); if (!response.ok) throw new Error('Network response was not ok'); const data = await response.json(); setData(data); } catch (error) { setError(error.message); } finally { setLoading(false); } }; fetchData(); }, []); return ( <div> {loading ? <p>Loading...</p> : data.map((item) => <p key={item.id}>{item.title}</p>)} {error && <p>Error: {error}</p>} </div> ); };
SWR est une autre bibliothèque de récupération de données qui donne la priorité aux stratégies de cache et de revalidation. Développé par Vercel, SWR conserve les données à jour en les récupérant automatiquement en arrière-plan chaque fois que l'utilisateur revisite la page.
import React, { useEffect, useState } from 'react'; import axios from 'axios'; const AxiosExample = () => { const [data, setData] = useState([]); const [loading, setLoading] = useState(true); const [error, setError] = useState(null); useEffect(() => { axios .get('https://jsonplaceholder.typicode.com/posts') .then((response) => { setData(response.data); setLoading(false); }) .catch((error) => { setError(error.message); setLoading(false); }); }, []); return ( <div> {loading ? <p>Loading...</p> : data.map((item) => <p key={item.id}>{item.title}</p>)} {error && <p>Error: {error}</p>} </div> ); };
GraphQL est un langage de requête pour les API qui offre plus de contrôle sur les données renvoyées. Il vous permet de récupérer uniquement les champs dont vous avez besoin, ce qui peut améliorer les performances en réduisant la sur-récupération ou la sous-récupération.
Pour démarrer avec Apollo Client, installez-le en exécutant npm install @apollo/client graphql.
const fetchData = async () => { try { const response = await fetch('https://jsonplaceholder.typicode.com/posts'); const data = await response.json(); setData(data); } catch (error) { console.error('Error fetching data:', error); } };
Le choix de la bonne méthode de récupération de données dans React dépend de la complexité de votre projet, des besoins en performances et de vos préférences pour les bibliothèques et les outils. Voici un bref 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!