本文是我在我们团队内部“现代 JavaScript 突击队”学习小组分享的文章,第三期学习内容为“阅读源码”系列,我将我的学习成功整理成文章输出,希望能够和大家一起温故知新!
现代 JavaScript 突击队”学习总结:《“现代 JavaScript 突击队”知识集》

第三期学习目标是“阅读源码”,从以下库中任选一个进行阅读学习:

  1. BetterScroll —— 学习目的:插件化架构 + 前端工程化 + TS
  2. Axios ——学习目的:TS 泛型、类型扩展及拦截器的实现
  3. Overnight —— 学习目的:TS 装饰器的知识及应用

本文是我这一期知识总结的第二篇文章,有兴趣可以阅读下第一篇《我为 Express 开了外挂》
另外,强烈推荐阿宝哥源码阅读相关的文章,值得精读:

  1. 《使用这些思路与技巧,我读懂了多个优秀的开源项目》528赞
  2. 《77.9K Star 的 Axios 项目有哪些值得借鉴的地方》 864赞
  3. 《从 13K 的前端开源项目我学到了啥?》 544赞

正文开始。

一、背景介绍

最近 Leo 在给实习生 Robin 进行代码 Review 的时候,看到很多地方都这么写:

  1. axios({
  2. method: "GET",
  3. url: "....",
  4. headers: {
  5. "token": token
  6. }
  7. }).then((res) => {
  8. // ...
  9. }).catch(function (error) {
  10. // ...
  11. });

Robin 在业务中使用 Axios 请求库发请求时,都手动为请求头添加 token 字段,类似这样:

(图:Axios 基本请求的使用)

二、Axios 简介

相信做前端开发的小伙伴应该对 Axios 请求库挺熟悉的。
Axios 是一个易用、简洁且高效的 HTTP 库,支持 node 端和浏览器端,支持 Promise,支持丰富的配置项。

(图:请求拦截器的使用)