Fetch API vs. Axios in React: der Vergleich
Fetch API versus Axios
~10 Min. Lesezeit Zuletzt aktualisiert am 8. August 2026
Willkommen in Phase 5, der letzten Phase dieses Tutorials: Wir verbinden unsere App endlich mit einer echten API. Bevor es losgeht, ein kurzer Vergleich der zwei gängigsten Wege, HTTP-Anfragen in React (und JavaScript allgemein) zu stellen.
Die eingebaute fetch()-Funktion
fetch() ist Teil jedes modernen Browsers (und damit auch jeder React-Web-App) – kein zusätzliches Paket nötig:
fetch('https://example.com/api/produkte')
.then((response) => response.json())
.then((data) => console.log(data))
.catch((error) => console.error(error));Axios: die populäre Alternative
npm install axiosimport axios from 'axios';
axios.get('https://example.com/api/produkte')
.then((response) => console.log(response.data))
.catch((error) => console.error(error));Die wichtigsten Unterschiede
| fetch() | axios |
|---|---|
response.json() als eigener, zweiter Schritt nötig | response.data bereits automatisch geparst |
Ein HTTP-Fehler (404, 500) wirft KEINEN Fehler – Sie müssen response.ok selbst prüfen | ein HTTP-Fehler löst automatisch .catch() bzw. eine geworfene Exception aus |
| Kein eingebautes Timeout, kein automatisches Abbrechen laufender Anfragen | eingebautes Timeout, AbortController-Unterstützung, automatisches JSON-Stringify bei POST-Daten |
| Keine Installation nötig, im Browser eingebaut | Zusätzliche Abhängigkeit (ca. 15 KB), muss installiert werden |
Das mit response.ok ist der Punkt, an dem die meisten Anfänger stolpern: Ein 404 ("nicht gefunden") oder 500 ("Serverfehler") ist für fetch() technisch eine ERFOLGREICHE Netzwerk-Antwort – nur der INHALT der Antwort ist eine Fehlermeldung. fetch() landet deshalb bei einem 404 NICHT automatisch in .catch(), sondern Sie müssen selbst prüfen:
fetch('https://example.com/api/produkte/existiert-nicht')
.then((response) => {
if (!response.ok) {
throw new Error(`HTTP-Fehler: ${response.status}`);
}
return response.json();
})
.catch((error) => console.error(error));Tipp: Für dieses Tutorial verwenden wir fetch() weiter (kein zusätzliches Paket, und Sie haben das Grundprinzip bereits im React-Native-Tutorial gesehen, falls Sie es kennen) – der response.ok-Check ist der einzige Mehraufwand gegenüber Axios. In größeren Projekten mit vielen API-Aufrufen ist Axios oft die pragmatischere Wahl.