Ich rufe den Webdienst mit Fetch auf, aber das gleiche kann ich mit Hilfe von Axios tun. Jetzt bin ich also verwirrt. Soll ich entweder Axios oder Hol holen?
ajax
reactjs
xmlhttprequest
es6-promise
es6-modules
Gorakh Nath
quelle
quelle
Antworten:
Fetch und Axios sind sich in der Funktionalität sehr ähnlich, aber für mehr Abwärtskompatibilität scheint Axios besser zu funktionieren (Fetch funktioniert beispielsweise in IE 11 nicht, lesen Sie diesen Beitrag ).
Wenn Sie mit JSON-Anforderungen arbeiten, sind die folgenden Unterschiede aufgeführt, auf die ich gestoßen bin.
JSON-Post-Anfrage abrufen
Axios JSON-Post-Anfrage
So:
Hoffe das hilft.
quelle
Axios request is ok when status is 200 and statusText is 'OK'
Was ist mit anderen httpStatus im 2xx-Bereich wie 201 oder 204?Sie sind HTTP-Anforderungsbibliotheken ...
Am Ende habe ich den gleichen Zweifel, aber die Tabelle in diesem Beitrag bringt mich dazu, mitzumachen
isomorphic-fetch
. Welches istfetch
aber funktioniert mit NodeJS.http://andrewhfarmer.com/ajax-libraries/
Der obige Link ist tot. Dieselbe Tabelle befindet sich hier: https://www.javascriptstuff.com/ajax-libraries/
Oder hier:
quelle
fetch
als nativ definiert ( dh Sie können es einfach verwenden - es muss keine Bibliothek entsprechend der Tabellenquelle hinzugefügt werden), währendfetch
es auf einigen Plattformen (insbesondere in allen Versionen von IE), für die Sie eine angeben müssen, nicht implementiert ist externe Polyfüllung sowieso.timeout
wir (was sehr seltsam ist) ein separates Modul verwenden müssen, um diese grundlegende Funktionalität zu implementieren.Laut mzabriskie auf GitHub :
Bitte überprüfen Sie Browser Support Axios
Ich denke, Sie sollten Axios verwenden.
quelle
Ein weiterer wesentlicher Unterschied zwischen der Abruf-API und der Axios-API
quelle
Axios ist ein eigenständiges Paket von Drittanbietern, das mithilfe von NPM problemlos in ein React-Projekt installiert werden kann.
Die andere Option, die Sie erwähnt haben, ist die Abruffunktion. Im Gegensatz zu Axios
fetch()
ist es in den meisten modernen Browsern integriert. Mit fetch müssen Sie kein Paket eines Drittanbieters installieren.Es liegt also an Ihnen,
fetch()
ob Sie nicht wissen, was Sie tun, oder ob Sie Axios verwenden, was meiner Meinung nach einfacher ist.quelle
Außerdem ... habe ich in meinem Test mit verschiedenen Bibliotheken herumgespielt und festgestellt, dass sie mit 4xx-Anfragen unterschiedlich umgehen. In diesem Fall gibt mein Test ein JSON-Objekt mit einer Antwort von 400 zurück. So behandeln 3 beliebte Bibliotheken die Antwort:
Interessant ist das
request-promise-native
undaxios
4xx Antwort auf, währendnode-fetch
nicht. Auchfetch
verwendet ein Versprechen für json Parsing.quelle
.throws
Methode zum Testen von Fehlern haben. In diesem Fall habe ich Ablehnungen von allen 3 Bibliotheken getestet und den Unterschied in den zurückgegebenen Daten festgestellt.Vorteile von Axios:
Vorteile von
axios
überfetch
quelle