发布于 2026-01-06 1 阅读
0

Axios 还是 Fetch?——2 分钟带你了解详情

Axios 还是 Fetch?——2 分钟带你了解详情

你是否曾好奇过,为什么开发者会选择 Axios 而不是 fetch?我们知道,两者都是处理 HTTP 或 XMLHttp 请求的工具,都能发起各种类型的 API 调用(get、post、put 等),也都基于 ES6 原生的 Promise API。那么,究竟有哪些关键区别需要注意呢?

首先,`.fetch()` 在处理 JSON 数据时分为两个步骤。第一步是发出实际的请求,第二步是对响应调用 `.json()` 方法。

const url = 'https://api.spotify.com/v1/artists/0OdUWJ0sBjDrqHygGUXeCF'

fetch(url)
.then(response => response.json())
.then(data => console.log(data));
Enter fullscreen mode Exit fullscreen mode

作为优秀的开发者,我们的主要目标是尽可能减少代码量。Axios 仅用一行代码就实现了这一点。

const url = 'https://api.spotify.com/v1/artists/0OdUWJ0sBjDrqHygGUXeCF'

axios.get(url).then(response => console.log(response));
Enter fullscreen mode Exit fullscreen mode

图片来自 gifmaker
其次是错误处理。从逻辑上讲,如果 `.fetch()` 出现错误,它应该进入 `.catch()` 代码块并返回,但实际上它最终会执行链中的下一个 `then()` 语句。请参见下文:

替代文字

但 Axios 的处理方式符合预期。
替代文字

它从 catch 中返回,不再使用 .then() 链式调用。

因此,.fetch() 方法是 ES6 中获取 HTTP 请求原生数据的绝佳方式,但也有一些陷阱,这些陷阱可以通过第三方库来处理。
图片来自 gifmaker

文章来源:https://dev.to/thatiitgirl/axios-or-fetch-in-2-minutes-1efn