Axios 实例
axios.create 创建的独立客户端及其默认配置、隔离和合并优先级。
#type / concept
#status / growing
#tech / network
#platform / browser
#resource / http
#resource / javascript
#package / axios
[!info] related notes
- 所属 MOC: HTTP 与前端网络请求
- 上位概念: Axios
- 并列概念: Axios 请求配置, Axios 拦截器
- 相关概念: Axios 响应结构, Axios 错误模型
- 相关实践: Axios 封装实践, 前端HTTP状态码的处理
Axios 实例
一句话定义
Axios 实例是一个带独立默认配置和独立拦截器的 HTTP 客户端。
核心内容
创建实例
const api = axios.create({
baseURL: '/api',
timeout: 10000
})
为什么要用实例
- 隔离不同服务的
baseURL - 隔离不同业务的 headers 和 timeout
- 隔离拦截器
- 避免全局 axios 被随意污染
配置优先级
库默认值 < 实例默认值 < 单次请求 config
常见场景
- 公共 API 一套实例
- 管理后台一套实例
- 文件上传一套实例
- 第三方服务一套实例
边界与易混淆点
- 实例不是副本,而是带独立默认值的客户端
instance.defaults可以改,但单次请求 config 优先级更高- 拦截器也是按实例隔离的
最短记忆方式
axios.create()= 独立客户端- 实例负责默认值和隔离
- 请求 config 优先级最高