开篇词
这可能是你能找到的最详细的 axios 源码分析系列,由简入繁,一步一步实现 axios 库
axios介绍
axios 是一个基于 promise 的 HTTP 库, 可以用在浏览器和 node.js 中。
为什么要从零实现该库?因为 axios 是一个功能很强大的 HTTP 请求库,有着丰富的功能,比如拦截请求、取消请求、自动转换 JSON 数据等等,通过深入学习 axios 源码,不但可以让我们了解到项目的架构、api 的实现细节,还可以让我们在实际工作中对 axios 库进行进一步的封装、扩展,对axios 库的使用信手拈来。另一个角度来说,通过阅读理解该库的源码,也有利于提高我们的代码水平。
用法
我们可以通过以下的方式来使用该库:
const axios = require('axios').default;
axios.get('/user?ID=12345')
.then(function (response) {
// 处理成功的响应
console.log(response);
})
.catch(function (error) {
// 处理失败的响应
console.log(error);
})
项目架构
这是0.27.2版本的 axios 项目整体架构图,大家可以先有个整体的印象,现在看不懂并不要紧,当我们一步步实现的时候,就会慢慢看得懂了