使用 useFetch 建立数据的连接
抛弃axios, 拥抱fetch
在实际开发中, 我们可以使用 useFetch
来替代axios
,
- 原生的 API
fetch
是浏览器原生的 API,而不需要额外引入第三方库。 这意味着你不需要安装和引入额外的库,只需要使用浏览器 API 即可发送异步请求。 fetch
还包含在浏览器的全局对象中,你不需要在每个文件中引入它。
相对地,axios
是一个独立的第三方库,需要使用 npm
包管理工具安装,并引入它的库。这意味着你需要在代码中引入 axios
的库并在每一个使用的文件中进行配置。
- 更优雅的语法
使用 fetch
发送 HTTP
请求时,可以使用链式调用 then
操作符来获取响应的数据,这种方式相对于 axios
更加简洁和优雅。例如:
javascript
fetch('https://example.com/data.json')
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
这个代码块会在浏览器中发起一个 HTTP
GET
请求,并在获取到响应后将其转换为 JSON
格式。then
和 catch
方法可以直接在网络响应中进行链式调用,而不需要经过额外的转换。
与之相对地,使用 axios
时则需要使用 .then(data => console.log(data.data))
这种方式来访问响应数据的主体。而且链式调用的语法在 fetch
中更加方便和直观。
- 更高的容错性
使用 fetch
发送 HTTP
请求能够更好地处理和处理错误。fetch
并不会在一些情况下自动抛出任何错误,相反,它会将接收到的响应对象解析为成功的 Promise
。这允许你更好地控制错误处理和流程,你可以根据响应的状态来编写更具有容错性的代码。
相反地,如果使用 axios
,对于某些情况下的错误,如网络故障或服务器错误,它会抛出错误。虽然这看起来是一种便利的做法,但它与处理错误的优雅方法相比,会使代码变得更加复杂。