Skip to content
导航

创建实例

创建实例

创建新的实例。

创建实例

可以使用 axios.create(config) 创建新的实例。

全局默认配置 axios.defaults 和创建实例时传入的配置 config 将会按优先级合并成实例默认配置 instance.defaults

ts
import axios from 'axios-miniprogram';

const instance = axios.create({
  baseURL: 'https://api2.com',
  headers: {
    common: {
      ['Content-Type']: 'application/json',
    },
    post: {
      ['Content-Type']: 'application/x-www-form-urlencoded',
    },
  },
  timeout: 1000,
});
import axios from 'axios-miniprogram';

const instance = axios.create({
  baseURL: 'https://api2.com',
  headers: {
    common: {
      ['Content-Type']: 'application/json',
    },
    post: {
      ['Content-Type']: 'application/x-www-form-urlencoded',
    },
  },
  timeout: 1000,
});

默认配置

可以设置配置项默认值。

ts
import axios from 'axios-miniprogram';

const instance = axios.create({
  baseURL: 'https://api2.com',
});

instance.defaults.headers.common['Content-Type'] = 'application/json';
instance.defaults.timeout = 1000;
import axios from 'axios-miniprogram';

const instance = axios.create({
  baseURL: 'https://api2.com',
});

instance.defaults.headers.common['Content-Type'] = 'application/json';
instance.defaults.timeout = 1000;

添加拦截器

可以添加实例的请求拦截器响应拦截器

ts
import axios from 'axios-miniprogram';

const instance = axios.create({
  baseURL: 'https://api2.com',
});

// 请求拦截器
instance.interceptors.request.use(
  function (config) {
    // 在发送请求之前做些什么
    return config;
  },
  function (error) {
    // 对请求错误做些什么
    return Promise.reject(error);
  },
);

// 响应拦截器
instance.interceptors.response.use(
  function (response) {
    // 在 then 之前做些什么
    return response;
  },
  function (error) {
    // 在 catch 之前做些什么
    return Promise.reject(error);
  },
);
import axios from 'axios-miniprogram';

const instance = axios.create({
  baseURL: 'https://api2.com',
});

// 请求拦截器
instance.interceptors.request.use(
  function (config) {
    // 在发送请求之前做些什么
    return config;
  },
  function (error) {
    // 对请求错误做些什么
    return Promise.reject(error);
  },
);

// 响应拦截器
instance.interceptors.response.use(
  function (response) {
    // 在 then 之前做些什么
    return response;
  },
  function (error) {
    // 在 catch 之前做些什么
    return Promise.reject(error);
  },
);

扩展实例

可以基于实例扩展实例

实例默认配置 parent.defaults 和派生领域时传入的配置 config 将会按优先级合并成新实例默认配置 child.defaults

ts
import axios from 'axios-miniprogram';

const parent = axios.create({
  baseURL: 'https://api2.com',
});

const child = instance.extend({
  baseURL: 'user',
});

// 请求的服务端地址 https://api2.com/user
child('/');
import axios from 'axios-miniprogram';

const parent = axios.create({
  baseURL: 'https://api2.com',
});

const child = instance.extend({
  baseURL: 'user',
});

// 请求的服务端地址 https://api2.com/user
child('/');

使用

使用方式和 axios 完全一致。

ts
import axios from 'axios-miniprogram';

const instance = axios.create({
  baseURL: 'https://api.com',
});

instance('test')
  .then((response) => {
    // 请求成功后做些什么
  })
  .catch((error) => {
    // 请求失败后做些什么
  });

instance('test', {
  method: 'POST',
})
  .then((response) => {
    // 请求成功后做些什么
  })
  .catch((error) => {
    // 请求失败后做些什么
  });

instance({
  url: 'test',
  method: 'POST',
})
  .then((response) => {
    // 请求成功后做些什么
  })
  .catch((error) => {
    // 请求失败后做些什么
  });
import axios from 'axios-miniprogram';

const instance = axios.create({
  baseURL: 'https://api.com',
});

instance('test')
  .then((response) => {
    // 请求成功后做些什么
  })
  .catch((error) => {
    // 请求失败后做些什么
  });

instance('test', {
  method: 'POST',
})
  .then((response) => {
    // 请求成功后做些什么
  })
  .catch((error) => {
    // 请求失败后做些什么
  });

instance({
  url: 'test',
  method: 'POST',
})
  .then((response) => {
    // 请求成功后做些什么
  })
  .catch((error) => {
    // 请求失败后做些什么
  });

也可以使用请求方法简化请求。