Quelques raisons pour l'utilisation d'Axios plus de Fetch:
- La capacité de surveiller la demande de progrès
C'est plus une question entre XMLHttpRequest (qui alimente axios) ou Chercher de l'API.
Chercher de l'API actuellement ne fournit pas de moyen d'être notifié de la demande, une caractéristique qui les pouvoirs mécanisme de rétroaction pour les téléchargements de gros fichiers par exemple.
Axios, d'autre part, a cette fonctionnalité intégrée:
axios.post('/api', data, {
onUploadProgress: ({ total, loaded }) => {
// update progress
}),
})
- Erreur de manipulation
Lorsque votre backend retours 500 Internal Server Error
code de réponse, fetch
ne sera pas traiter toute différente de la 200 OK
.
C'est un inconvénient dans la plupart des cas, puisque tous vos hypothèses précédentes de ce qu'est une réponse ressemblerait ne sont plus valides.
Le plus souvent, lors de la réception d'une réponse erronée à partir du serveur que vous souhaitez annuler le pipeline de traitement aussitôt que possible, et de passer à une erreur de manipulation cas.
fetch(url)
.then(reponse => {
if (!(status >= 200 && status < 300)) {
return Promise.reject(new Error("Invalid response status"));
}
return response;
})
.then(response => response.json())
.then(/* normal processing */)
.catch(/* error handling */);
Ce n'est pas difficile à réaliser, mais vous auriez probablement souhaitez capturer cette logique sous peu d'abstraction pour éviter la répétition, et cela nous rapproche un peu plus de Web API d'abstraction qui est Axios.
Axios un sane chose et rejette la promesse si la réponse renvoie statut erroné. Ce comportement est personnalisable, comme le sont la plupart des choses avec de l'axios.
- Les tests
Axios a moxios, chercher a fetch-dérision.
Ces deux bibliothèques sont grands, mais dans mon expérience, fetch-mock
requis d'installation supplémentaires pour obtenir Plaisanterie à utiliser moqué de récupérer plus de polyfilled un.
J'aime aussi le fait qu' moxios.wait()
retourne une promesse qui sera résolu après avoir correspondant à la demande.
- D'autres fonctionnalités qui Axios offre
Par exemple, vous pouvez configurer un intercepteur qui va ajouter de la clé api pour tous les paramètres de la demande, ou de surveiller les demandes actives pour afficher un écran de chargement.
Raisons pour l'utilisation de l'une ou l'autre peut varier de réelles exigences de commodité.
Si vous avez besoin de suivre les progrès, l'utilisation d'Axios (ou XMLHttpRequest).
Si vous êtes à la rédaction d'un travailleur des services, utilisation de Fetch.
Sinon, utiliser ce qui est plus pratique pour vous.