React AJAX
In React-Anwendungen können AJAX-Anfragen mithilfe der fetch-API oder von Drittanbieter-Bibliotheken wie axios, jQuery und anderen für Netzwerkanfragen implementiert werden.
Im Folgenden werden diese beiden Methoden grundlegend erklärt:
Verwendung der fetch-API für AJAX-Anfragen
fetchist eine im Browser integrierte API für Netzwerkanfragen. Das Folgende verwendetfetchGrundlegende Schritte zum Ausführen einer AJAX-Anfrage in einer React-Komponente:
-
fetch importieren- Wenn Sie einen modernen Browser verwenden, müssen Sie ihn normalerweise nicht importieren.
fetch. Wenn Sie jedoch ältere Browser unterstützen müssen, können Sieunfetcheinen solchen Polyfill verwenden. -
Verwendung des useEffect-Hooks- Verwenden
useEffectHook, um Seiteneffekte wie Netzwerkanfragen zu behandeln. -
Eine Anfrage stellen- Verwenden
fetchum GET- oder POST-Anfragen zu stellen. -
Antwort verarbeiten- Verwenden
.then()um die Antwortdaten zu verarbeiten. -
Fehlerbehandlung- Verwenden
.catch()um Fehler abzufangen und zu behandeln. -
State aktualisieren- Verwenden
useStateHook, um die angeforderten Daten zu speichern und den State zu aktualisieren, nachdem die Anfrage erfolgreich war.
Beispiel
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('Fehler beim Abrufen der Daten:', error);
}
};
fetchData();
}, []);
if (loading) {
return <div>Lädt...</div>;
}
return (
<div>
<h1>Daten von API:</h1>
<pre>{JSON.stringify(data, null, 2)}</pre>
</div>
);
};
export default MyComponent;
Erklärung:
useState und useEffect: Verwende
useStatezum Speichern der von der AJAX-Anfrage zurückgegebenen Datendata) und Ladezustandloading) und verwendenuseEffectzum Ausführen der AJAX-Anfrage, nachdem die Komponente geladen wurde.fetch: Verwende
fetchum eine GET-Anfrage zu stellen, und verwenderesponse.json()zum Parsen der zurückgegebenen JSON-Daten in JavaScript-Objekte.Asynchrone Verarbeitung: Verwende
async/awaitum asynchrone Operationen zu handhaben und sicherzustellen, dass der Zustand aktualisiert wird, nachdem die Anfrage abgeschlossen ist.Fehlerbehandlung: In
fetch-Anfrage, verwendetry/catchum Fehler abzufangen und zu behandeln, die auftreten können.
Verwendung von axios
axios ist ein Promise-basierter HTTP-Client für Browser und Node.js.
Im Folgenden finden Sie die grundlegenden Schritte zur Verwendung von axios:
-
axios installieren- axios über npm oder yarn installieren.
npm install axios
-
axios importieren- axios in der Komponente importieren.
-
Eine Anfrage stellen- Verwenden Sie axios, um GET- oder POST-Anfragen zu stellen.
-
Antworten und Fehler behandeln- Verwenden Sie
.then()und.catch(), um Antworten zu verarbeiten und Fehler abzufangen. -
State aktualisieren- Ähnlich wie bei der Verwendung von
fetchverwenden Sie auf ähnliche WeiseuseState, um den State zu aktualisieren.
Beispiel
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('Fehler beim Abrufen der Daten:', error);
}
};
fetchData();
}, []);
if (loading) {
return <div>Lädt...</div>;
}
return (
<div>
<h1>Daten von API:</h1>
<pre>{JSON.stringify(data, null, 2)}</pre>
</div>
);
};
export default MyComponent;
jQuery Online-Test verwenden
Das folgende Beispiel zeigt, wie die neueste Gist-Share-Beschreibung eines GitHub-Benutzers abgerufen wird:
Daten in React-Komponenten können in der Methode componentDidMount über Ajax abgerufen werden. Wenn Daten vom Server abgerufen werden, können sie im State gespeichert werden, und anschließend kann die UI mit der Methode this.setState neu gerendert werden.
Beim asynchronen Laden von Daten verwenden Sie componentWillUnmount, um nicht abgeschlossene Anfragen abzubrechen, bevor die Komponente unmountet wird.
React-Beispiel
Ausprobieren »
Der obige Code verwendet jQuery, um die Ajax-Anfrage abzuschließen.
Andere Erweiterungen