From 78db40aa5adb5b791bc1b9f75a9abdb89f2ff27d Mon Sep 17 00:00:00 2001 From: "954270063@qq.com" <954270063@qq.com> Date: Tue, 21 Apr 2020 14:39:21 +0800 Subject: [PATCH] :pencil: --- README.md | 38 +++++++++++++++++++------------------- src/axios.ts | 8 ++++---- src/types.ts | 2 +- 3 files changed, 24 insertions(+), 24 deletions(-) diff --git a/README.md b/README.md index 54d40bc..88c6821 100644 --- a/README.md +++ b/README.md @@ -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'); -``` \ No newline at end of file diff --git a/src/axios.ts b/src/axios.ts index 166d197..293c283 100644 --- a/src/axios.ts +++ b/src/axios.ts @@ -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; diff --git a/src/types.ts b/src/types.ts index 47ef19d..38ec2f7 100644 --- a/src/types.ts +++ b/src/types.ts @@ -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 */ /** * 任意值对象