pull/1/head
954270063@qq.com 2020-04-21 14:39:21 +08:00
parent 592746e57c
commit 78db40aa5a
3 changed files with 24 additions and 24 deletions

View File

@ -384,6 +384,25 @@ instance('/test');
instance.get('/test');
```
### `axios.Axios`
`axios.Axios`是一个类,其实`axios`就是`axios.Axios`类的实例改造而来的,`axios.create(config)`创建的也是`axios.Axios`的实例。
直接实例化`axios.Axios`可以得到一个`纯净的实例`,不能当函数调用,传入的自定义配置就是`纯净的实例`的默认配置,而不会像`axios.create(config)`一样去合并`axios`中的默认配置。
```typescript
axios.defaults.baseURL = 'https://www.xxx.com';
const instance = new axios.Axios({
params: { value: '零污染' }
});
// 最终请求的 URL 是这样的 => /test?value=零污染
// /test 来自传入的 '/test'
// value=零污染 来自 instance.defaults.params
instance.get('/test');
```
### `axios.interceptors`
可以先拦截请求或响应然后再由then或catch处理。
@ -481,22 +500,3 @@ const uri = axios.getUri({
params: { id: 1 }
});
```
### `axios.Axios`
`axios.Axios`是一个类,其实`axios`就是`axios.Axios`类的实例改造而来的,`axios.create(config)`创建的也是`axios.Axios`的实例。
直接实例化`axios.Axios`可以得到一个`纯净的实例`,不能当函数调用,传入的自定义配置就是`纯净的实例`的默认配置,而不会像`axios.create(config)`一样去合并`axios`中的默认配置。
```typescript
axios.defaults.baseURL = 'https://www.xxx.com';
const instance = new axios.Axios({
params: { value: '零污染' }
});
// 最终请求的 URL 是这样的 => /test?value=零污染
// /test 来自传入的 '/test'
// value=零污染 来自 instance.defaults.params
instance.get('/test');
```

View File

@ -2,7 +2,7 @@
* @Author: early-autumn
* @Date: 2020-04-15 12:45:18
* @LastEditors: early-autumn
* @LastEditTime: 2020-04-20 14:48:03
* @LastEditTime: 2020-04-21 14:38:43
*/
import { AxiosRequestConfig, Data, AxiosResponse, AxiosBaseInstance, AxiosInstance } from './types';
import Axios from './core/Axios';
@ -50,9 +50,9 @@ function createInstance(config: AxiosRequestConfig): AxiosInstance {
return instance.request(requestConfig);
}
// instance 的属性设置到 axios 函数中
// instance 的属性合并到 axios 函数中
Object.assign(axios, instance);
// instance 的方法设置到 axios 函数中
// instance 的方法合并到 axios 函数中
Object.setPrototypeOf(axios, Object.getPrototypeOf(instance));
return axios as AxiosInstance;
@ -74,7 +74,7 @@ axios.Axios = Axios;
// 添加 CancelToken 类
axios.CancelToken = CancelToken;
// 添加判断取消方法
// 添加 判断取消请求 方法
axios.isCancel = isCancel;
export default axios;

View File

@ -2,7 +2,7 @@
* @Author: early-autumn
* @Date: 2020-04-13 15:23:53
* @LastEditors: early-autumn
* @LastEditTime: 2020-04-21 12:13:49
* @LastEditTime: 2020-04-21 14:38:31
*/
/**
*