alova实例
createAlova()
创建一个 alova 实例。
- 类型
function createAlova(options?: AlovaOptions): Alova;
- 参数
- config: 配置参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| baseURL | string | 基础路径,默认为空,查看详情 |
| statesHook | object | 状态管理钩子,选填,查看详情 |
| requestAdapter | object | 请求适配器,必填,查看详情 |
| timeout | number | 超时时间,默认不超时,查看详情 |
| localCache | object | 本地缓存配置,默认 GET 有 5000ms 缓存,查看详情 |
| storageAdapter | object | 本地存储适配器,默认为localStorage,查看详情 |
| beforeRequest | function | 请求前钩子,查看详情 |
| responded | object | function | 请求响应钩子,查看详情 |
| shareRequest | boolean | 共享请求,查看详情 |
| errorLogger | boolean| null | function | 错误日志,查看详情 |
| cacheLogger | boolean | null | function | 缓存日志,查看详情 |
- 返回
Alova 实例
- 示例
import { createAlova } from 'alova';
const alova = createAlova({
baseURL: 'https://example.com',
statesHook: VueHook,
requestAdapter: GlobalFetch(),
timeout: 3000
// ...
});
alova.id
alova 实例 id,用于区分不同的 alova 实例,可在method 匹配器中精准匹配指定 alova 的 method 实例。
- 类型:string
alova.options
通过createAlova创建 alova 实例时,默认配置与传入的配置对象合并后的对象。
- 类型
interface AlovaOptions {
statesHook: StatesHook;
requestAdapter: AlovaRequestAdapter;
baseURL?: string;
timeout?: number;
localCache?: GlobalLocalCacheConfig;
storageAdapter?: AlovaStorageAdapter;
beforeRequest?: Function;
responded?: Function | ResponsedHandlerRecord;
shareRequest?: boolean;
errorLogger?: boolean | null | Function;
cacheLogger?: boolean | null | Function;
}
alova.storage
alova 实例对应的存储适配器实例,默认为AlovaGlobalStorage,它使用的是localStorage。
- 类型
interface AlovaStorageAdapter {
get(key: string): any;
set(key: string, value: any): void;
remove(key: string): void;
}
alova.Get()
创建 GET 请求的 method 实例。
- 类型
interface Alova {
Get(url: string, config?: AlovaMethodCreateConfig): Method;
}
- 参数
- url: 请求地址
- config: 配置参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| headers | object | 请求头,查看详情 |
| params | object | 请求参数,查看详情 |
| name | string | method 对象名称,在 updateState、invalidateCache、setCache、以及 fetch 函数中可以通过名称或通配符获取对应 method 实例 |
| timeout | number | 请求超时时间,查看详情 |
| localCache | LocalCacheConfig | 响应缓存时间,查看详情 |
| hitSource | string | 打击源方法实例,当源方法实例请求成功时,当前方法实例的缓存将被失效,查看详情 |
| enableDownload | boolean | 开启下载进度信息,查看详情 |
| enableUpload | boolean | 开启上传进度信息,查看详情 |
| transformData | function | 转换响应数据,查看详情 |
| shareRequest | boolean | 请求级共享请求开关,查看详情 |
除了可配置上面的参数外,还支持请求适配器支持的其他参数。
- 返回
method 实例
- 示例
const getUsers = alovaInstance.Get('/users', {
params: {
id: 1
}
// ...
});
alova.Post()
创建 POST 请求的 method 实例。
- 类型
interface Alova {
Post(
url: string,
data?: object | FormData | string | null,
config?: AlovaMethodCreateConfig
): Method;
}
- 参数
- url: 请求地址
- data: 请求 body
- config: 配置参数,参数类型同alova.Get
- 返回
method 实例
- 示例
const postUsers = alovaInstance.Post(
'/createUser',
{
name: 'alova',
age: 18,
gender: 'male'
},
{
// 配置参数...
}
);
alova.Delete()
创建 DELETE 请求的 method 实例。
- 类型
interface Alova {
Delete(
url: string,
data?: object | FormData | string | null,
config?: AlovaMethodCreateConfig
): Method;
}
- 参数
- url: 请求地址
- data: 请求 body
- config: 配置参数,参数类型同alova.Get
- 返回
method 实例
- 示例
const deleteUsers = alovaInstance.Delete(
'/deleteUser',
{
id: 1
},
{
// 配置参数...
}
);
alova.Put()
创建 PUT 请求的 method 实例。
- 类型
interface Alova {
Put(
url: string,
data?: object | FormData | string | null,
config?: AlovaMethodCreateConfig
): Method;
}
- 参数
- url: 请求地址
- data: 请求 body
- config: 配置参数,参数类型同alova.Get
- 返回
method 实例
- 示例
const putUsers = alovaInstance.Put(
'/updateUser',
{
id: 1,
name: 'alova'
},
{
// 配置参数...
}
);
alova.Head()
创建 HEAD 请求的 method 实例。
- 类型
interface Alova {
Head(url: string, config?: AlovaMethodCreateConfig): Method;
}
- 参数
- url: 请求地址
- config: 配置参数,参数类型同alova.Get
- 返回
method 实例
alova.Patch()
创建 PATCH 请求的 method 实例。
- 类型
interface Alova {
Patch(
url: string,
data?: object | FormData | string | null,
config?: AlovaMethodCreateConfig
): Method;
}
- 参数
- url: 请求地址
- data: 请求 body
- config: 配置参数,参数类型同alova.Get
- 返回
method 实例
alova.Options()
创建 OPTIONS 请求的 method 实例。
- 类型
interface Alova {
Options(url: string, config?: AlovaMethodCreateConfig): Method;
}
- 参数
- url: 请求地址
- config: 配置参数,参数类型同alova.Get
- 返回
method 实例
alova使用调查,花3分钟填下,求你了!
alova用在项目里了吗?快来告诉我