跳到主要内容

工作流精简的

下一代请求工具

极致地简化你的API集成工作流,仅需一步

$npm i alova
Docusaurus themed imageDocusaurus themed image
更先进的openAPI方案消除中间的API文档alova的devtools能够同时生成API调用代码,以及每个API的TypeScript类型和详尽的文档。即使在JavaScript项目中,也能享受到完整的TypeScript类型提示。此外,你还可以快速查找所需API,参照参数表快速传参,所有操作均在编辑器内完成。
请求策略复杂请求场景的杀手锏使用alova的客户端和服务器的请求策略应对不同场景下的请求,它们对每一个请求场景都提供了完整的状态化参数、事件和操作函数,只需一行代码实现各种复杂场景的请求。
分页请求Client

自动管理分页数据,数据预加载,减少不必要的数据刷新,流畅度提高300%,编码难度降低50%

usePagination((page, size) => totoList(page, size), {
initialData: {
total: 0,
data: []
},
initialPage: 1,
initialPageSize: 10
})
监听请求Client

状态变化立即发送请求,这在tabs切换和条件查询中很有用。

useWatcher(
() => filterTodoList(page, keyword),
[keyword, page],
{
debounce: [500, 0]
}
)
请求重试Server

在重要的请求上使用它,可以提高请求的稳定性

const res = await retry(alova.Post('/api/order'), {
retry: 3,
backoff: {
delay: 1000,
multiplier: 2
}
})
请求速率限制Server

将请求率限制在一定时间内

const limit = createRateLimiter({
points: 4,
duration: 60 * 1000
})
const orderRes = await limit(
alova.Get('/api/order')
)
预加载数据Client

预加载数据以更快地显示视图,或跨组件重新拉取数据

const { fetching, error, fetch } = useFetcher()
fetch(getTodoDetail)
Token身份认证Client

支持无感刷新Token的全局拦截器,并提供基于令牌的登录、注销、令牌分配和令牌刷新的统一管理

const { onAuthRequired, onResponseRefreshToken } = createServerTokenAuthentication({
refreshTokenOnError: {
isExpired: res => res.status === 401,
refrshTokenOnError: async () => {
const { token, refresh_token } = await refreshToken()
localStorage.setItem('token', token)
localStorage.setItem('refresh_token', refresh_token)
}
}
})
const alovaInstance = createAlova({
beforeRequest: onAuthRequired(),
responded: onResponseRefreshToken()
})
表单提交Client

自动管理表单数据,让你快速实现各种表单功能

自动刷新数据Client

通过浏览器事件自动刷新数据,界面始终显示最新数据

学习共20+个请求策略
灵活性与任何请求工具在任何JS环境下运行Use hooks起源于functional组件,但alova创新性地使其与options和class风格的UI框架兼容,这意味着alova的客户端请求策略几乎不受JS环境和UI框架的限制,可以与您熟悉的请求工具一起使用
加入社区深受全球开发者的信赖依赖alova的开源项目
avatar
Scott Hualova创建者

像fetch和axios这样的请求库使请求变得非常简单,react-query和swr又进一步减少了请求的模板代码。但alova的目标是提供极致的API消费效率,消除几乎所有的请求工作,实现更高效的客户端-服务器数据交互

avatar
ProddyThe author of EMS-ESP

I'm loving this library and slowly migrating my code from Axios to Alova.

avatar
0x1EC10DDeveloper

alova是真的很细致,我看文档的时候每一个点都是痛点,解决了超多问题

avatar
Ah jungAuthor of Naive Admin

alovajs很不错。我打算将我们的产品统一换成alovajs

Alova 团队认识核心成员
现在尝试 Alova将你的开发效率提升到上一个层次