React AJAX
Dans les applications React, les requêtes AJAX peuvent être implémentées à l'aide de l'API fetch ou de bibliothèques tierces telles que axios, jQuery, et d'autres pour les requêtes réseau.
Ce qui suit est une explication de base de l'utilisation de ces deux méthodes :
Utilisation de l'API fetch pour les requêtes AJAX
fetchest une API intégrée au navigateur pour effectuer des requêtes réseau. Ce qui suit utilisefetchÉtapes de base pour effectuer une requête AJAX dans un composant React :
-
Importer fetch- Si vous utilisez un navigateur moderne, vous n'avez généralement pas besoin de l'importer.
fetch. Toutefois, si vous devez prendre en charge des navigateurs plus anciens, vous pouvez utiliserunfetchun tel polyfill. -
Utilisation du hook useEffect- Utilisez
useEffecthook pour gérer les effets secondaires, comme effectuer des requêtes réseau. -
Effectuer une requête- Utilisez
fetchpour effectuer des requêtes GET ou POST. -
Gérer la réponse- Utilisez
.then()pour gérer les données de réponse. -
Gestion des erreurs- Utilisez
.catch()pour capturer et gérer les erreurs. -
Mettre à jour l'état- Utilisez
useStatehook pour stocker les données demandées et mettre à jour l'état après la réussite de la requête.
Exemple
const MyComponent = () => {
const [data, setData] = useState(null);
const [loading, setLoading] = useState(true);
useEffect(() => {
const fetchData = async () => {
try {
const response = await fetch('https://api.example.com/data');
const result = await response.json();
setData(result);
setLoading(false);
} catch (error) {
console.error('Erreur lors de la récupération des données:', error);
}
};
fetchData();
}, []);
if (loading) {
return <div>Chargement...</div>;
}
return (
<div>
<h1>Données de l'API:</h1>
<pre>{JSON.stringify(data, null, 2)}</pre>
</div>
);
};
export default MyComponent;
Explication :
useState et useEffect: Utilisez
useStatepour stocker les données renvoyées par la requête AJAXdata) et l'état de chargementloading), et utilisezuseEffectpour exécuter la requête AJAX après le chargement du composant.fetch: Utilisez
fetchpour effectuer une requête GET, et utilisezresponse.json()pour analyser les données JSON renvoyées en objets JavaScript.Gestion asynchrone: Utilisez
async/awaitpour gérer les opérations asynchrones, en garantissant que l'état est mis à jour après la fin de la requête.Gestion des erreurs: Dans
fetchla requête, utiliseztry/catchpour intercepter et gérer les erreurs qui peuvent survenir.
Utilisation d'axios
axios est un client HTTP basé sur les promesses pour les navigateurs et Node.js.
Voici les étapes de base pour utiliser axios :
-
Installer axios- Installer axios via npm ou yarn.
npm install axios
-
Importer axios- Importer axios dans le composant.
-
Effectuer une requête- Utiliser axios pour effectuer des requêtes GET ou POST.
-
Gérer les réponses et les erreurs- Utiliser
.then()et.catch()pour gérer les réponses et capturer les erreurs. -
Mettre à jour l'état- Similaire à l'utilisation de
fetchde même, utilisezuseStatepour mettre à jour l'état.
Exemple
import axios from 'axios';
const MyComponent = () => {
const [data, setData] = useState(null);
const [loading, setLoading] = useState(true);
useEffect(() => {
const fetchData = async () => {
try {
const response = await axios.get('https://api.example.com/data');
setData(response.data);
setLoading(false);
} catch (error) {
console.error('Erreur lors de la récupération des données:', error);
}
};
fetchData();
}, []);
if (loading) {
return <div>Chargement...</div>;
}
return (
<div>
<h1>Données de l'API:</h1>
<pre>{JSON.stringify(data, null, 2)}</pre>
</div>
);
};
export default MyComponent;
Test en ligne d'utilisation de jQuery
L'exemple suivant montre comment récupérer la dernière description de partage de gist d'un utilisateur GitHub :
Les données dans les composants React peuvent être récupérées via Ajax dans la méthode componentDidMount. Lorsque les données sont récupérées depuis le serveur, elles peuvent être stockées dans l'état, puis l'interface utilisateur peut être re-rendue à l'aide de la méthode this.setState.
Lors du chargement asynchrone des données, utilisez componentWillUnmount pour annuler les requêtes inachevées avant que le composant ne soit démonté.
Exemple React
Essayez-le »
Le code ci-dessus utilise jQuery pour effectuer la requête Ajax.
Autres extensions