请求策略业务开发杀手锏alova提供了20+业务模块,我们称之为请求策略,可以帮你快速实现客户端和服务端应用的业务逻辑开发。
自动管理分页数据,数据预加载,减少不必要的数据刷新,流畅度提高300%,编码难度降低50%
const todoList = (page, size) => alova.Get('/todos', {params: { page, size }});const {loading, data, page, pageSize, pageCount, total} = usePagination(todoList);
状态变化立即发送请求,这在tabs切换和条件查询中很有用。
useWatcher(() => alova.Get(`/rewards/${activeKey}`),[activeKey],{debounce: [500, 0]})
在重要的请求上使用它,可以提高请求的稳定性
const res = await retry(alova.Post('/api/order'), {retry: 3,backoff: {delay: 1000,multiplier: 2}})
将请求率限制在一定时间内
const limit = createRateLimiter({points: 4,duration: 60 * 1000})const orderRes = await limit(alova.Get('/api/order'))
预加载数据以更快地显示视图,或跨组件重新拉取数据
const { fetching, error, fetch } = useFetcher()fetch(alova.Get('/todo/1'))
支持无感刷新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()})
先进的openAPI方案把API文档搬到编辑器alova的开发工具支持API信息和代码之间的交互式通信,在编码的同时搜索API和查看其完整信息,所有这些都无需离开你的编辑器。
灵活性与任何请求工具在任何JS环境下运行Use hooks起源于functional组件,但alova创新性地使其与options和class风格的UI框架兼容,这意味着alova的客户端请求策略几乎不受JS环境和UI框架的限制,可以与您熟悉的请求工具一起使用
加入社区深受全球开发者的信赖依赖alova的开源项目

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

ProddyThe author of EMS-ESP
I'm loving this library and slowly migrating my code from Axios to Alova.

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

Ah jungAuthor of Naive Admin
alovajs很不错。我打算将我们的产品统一换成alovajs
Alova 团队认识核心成员