axios学习: 创建实例 axios.create

创建一个 axios 实例来完成 http 请求
更新于: 2023-02-09 13:42:24

背景

为什么我需要这样用?用实例,可以实现各种配置的隔离,可以应对现实中复杂的项目场景。

用法

axios.create([config])

举例

const instance = axios.create({
  baseURL: 'https://some-domain.com/api/',
  timeout: 1000,
  headers: {'X-Custom-Header': 'foobar'}
});

实例方法

# 大杂烩
axios#request(config)

# 无 data 的组
axios#get(url[, config])
axios#delete(url[, config])
axios#head(url[, config])
axios#options(url[, config])

# 有 data 的组
axios#post(url[, data[, config]])
axios#put(url[, data[, config]])
axios#patch(url[, data[, config]])

# 其它
axios#getUri([config])

默认配置更新

// 创建实例后修改默认值
instance.defaults.headers.common['Authorization'] = AUTH_TOKEN;

配置的优先级

// 使用库提供的默认配置创建实例
// 此时超时配置的默认值是 `0`
const instance = axios.create();

// 重写库的超时默认值
// 现在,所有使用此实例的请求都将等待2.5秒,然后才会超时
instance.defaults.timeout = 2500;

// 重写此请求的超时时间,因为该请求需要很长时间
instance.get('/longRequest', {
  timeout: 5000
});

参考