J'appelle le service Web en utilisant fetch mais je peux faire la même chose avec l'aide d'axios. Alors maintenant, je suis confus. Dois-je opter pour axios ou chercher?
ajax
reactjs
xmlhttprequest
es6-promise
es6-modules
Gorakh Nath
la source
la source
Réponses:
Fetch et Axios ont des fonctionnalités très similaires, mais pour plus de compatibilité ascendante, Axios semble mieux fonctionner (la récupération ne fonctionne pas dans IE 11 par exemple, consultez ce post )
De plus, si vous travaillez avec des requêtes JSON, voici quelques différences sur lesquelles je suis tombé par hasard.
Récupérer la demande de publication JSON
Demande de publication Axios JSON
Alors:
J'espère que cela t'aides.
la source
Axios request is ok when status is 200 and statusText is 'OK'
Qu'en est-il des autres httpStatus de la gamme 2xx comme 201 ou 204?Ce sont des bibliothèques de requêtes HTTP ...
Je me retrouve avec le même doute mais le tableau de ce post me fait partir
isomorphic-fetch
. Ce qui nefetch
fonctionne qu'avec NodeJS.http://andrewhfarmer.com/ajax-libraries/
Le lien ci-dessus est mort Le même tableau est ici: https://www.javascriptstuff.com/ajax-libraries/
Ou ici:
la source
fetch
comme natif (ce qui signifie que vous pouvez simplement l'utiliser - pas besoin d'inclure une bibliothèque , en fonction de la source de la table), alors qu'ilfetch
n'est en fait pas implémenté dans certaines plates-formes (notamment dans toutes les versions d'IE), pour lesquelles vous devez fournir un polyfill externe de toute façon.timeout
(ce qui est très étrange), nous devons utiliser un module séparé pour implémenter cette fonctionnalité de base.Selon mzabriskie sur GitHub :
veuillez vérifier le support du navigateur Axios
Je pense que vous devriez utiliser axios.
la source
Une autre différence majeure entre l'API Fetch et l'API Axios
la source
Axios est un package tiers autonome qui peut être facilement installé dans un projet React à l'aide de NPM.
L'autre option que vous avez mentionnée est la fonction d'extraction. Contrairement à Axios,
fetch()
est intégré à la plupart des navigateurs modernes. Avec fetch, vous n'avez pas besoin d'installer un package tiers.Donc c'est à vous de décider, vous pouvez y aller
fetch()
et potentiellement gâcher si vous ne savez pas ce que vous faites OU simplement utiliser Axios, ce qui est plus simple à mon avis.la source
De plus ... je jouais avec différentes bibliothèques dans mon test et j'ai remarqué leur gestion différente des requêtes 4xx. Dans ce cas, mon test renvoie un objet json avec une réponse 400. Voici comment 3 bibliothèques populaires gèrent la réponse:
Il est intéressant de noter que
request-promise-native
et deaxios
lancer une réponse 4xx alors que cenode-fetch
n'est pas le cas.fetch
Utilise également une promesse pour l'analyse json.la source
.throws
méthode pour tester les erreurs lancées. Dans ce cas, je testais les rejets de toutes les 3 bibliothèques et j'ai remarqué la différence dans les données renvoyées.Avantages d'axios:
Avantages de
axios
plusfetch
la source