Axios 实例
axios.create 创建的独立客户端及其默认配置、隔离和合并优先级。
#concept
#growing
#network
#browser
#http
#javascript
#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 一套实例
- 管理后台一套实例
- 文件上传一套实例
- 第三方服务一套实例
边界与易混淆点
- 实例隔离默认配置和拦截器,不是浏览器 Cookie、网络连接或安全权限的隔离边界
baseURL是地址拼接配置,不是目的地白名单;默认允许绝对 URL 覆盖它,带凭证的实例需控制可请求目标instance.defaults可以改,但单次请求 config 通常优先;不同字段有专门合并规则,例如data不从 defaults 继承- 拦截器也是按实例隔离的
最短记忆方式
axios.create()= 独立客户端- 实例负责默认值和隔离
- 请求 config 优先级最高