▶_MiniApp Toolkit

alova

工具

JavaScript 请求策略层框架。20+ 开箱即用的请求策略(分页、表单、上传、重试、限流等),减少高达 70% 的请求代码。一套 API 跨 React/Vue/Svelte/Solid/小程序/服务端,支持 Taro 和 uni-app 适配器。

请求策略网络请求Tarouni-appTypeScript跨端ReactVue

详细文档

alova#

平台概述#

alova(发音 /əˈləʊva/)是 JavaScript 请求策略层框架。它不是 axios 或 fetch 的替代品,而是在其之上构建的策略层——封装了分页、表单、上传、重试、限流等 20+ 常见请求场景,提供开箱即用的 Hook,减少高达 70% 的请求样板代码。

核心价值:小程序开发中,网络请求管理(loading 状态、分页、缓存、错误重试)是最常见的重复劳动。alova 通过统一的 Hook API,让开发者在 React、Vue、Taro、uni-app 中用同一套模式管理请求逻辑。

项目数据(2026-08-01 核实):

  • GitHub:4009⭐ / 148 forks
  • npm:v3.5.3,225 个版本(2022-10 至今)
  • 最近活跃:2026-07-25(持续高频迭代)
  • 适配器生态:@alova/adapter-uniapp(41 版本)、@alova/adapter-taro(32 版本)
  • License:MIT

设计规范#

小程序适配器架构#

alova 通过适配器模式适配不同运行环境:

适配器包名说明npm 版本
uni-app@alova/adapter-uniapp适配 uni.request,支持 Vue2/Vue341
Taro@alova/adapter-taro适配 Taro.request,支持 React/Vue32

适配器提供三个维度的适配:

  • 请求适配器:将 alova 的请求委托给 uni.request / Taro.request
  • 响应适配器:统一响应数据格式(status / data / headers)
  • 监控适配器:将底层请求错误上报给 alova 的错误处理链

核心 Hook 一览#

Hook用途框架支持
useRequest基础请求(自动 loading/error)React/Vue/Svelte/Solid
usePagination分页列表(预加载 + 缓存同步)全框架
useForm表单提交(校验 + 自动填充 + 回退)全框架
useUploader文件上传(进度 + 分片 + 并发)全框架
useSSEServer-Sent Events(流式数据)全框架
useWatcher数据监听请求(响应式自动触发)全框架
useFetcher数据拉取(配合缓存更新)全框架
useCaptcha验证码倒计时全框架
useRetriableRequest自动重试请求全框架

缓存体系#

  • L1 内存缓存:默认 5 分钟,支持手动失效和自动失效
  • L2 持久化缓存:小程序中使用 Storage API
  • 声明式失效:通过 hitSource 关联,某请求完成自动失效依赖缓存

审核规范#

不涉及(请求库,不影响小程序审核流程)。

开发指南#

快速上手(uni-app Vue3)#

code
// 1. 安装依赖
// pnpm add alova @alova/adapter-uniapp

// 2. 创建 alova 实例
import { createAlova } from 'alova';
import AdapterUniApp from '@alova/adapter-uniapp';
import { VueHook } from '@alova/adapter-ui-vue';

export const alovaInstance = createAlova({
  baseURL: 'https://api.example.com',
  ...AdapterUniApp(),
  statesHook: VueHook,
  responded: {
    onSuccess: async (response) => {
      const { statusCode, data } = response;
      if (statusCode >= 400) throw new Error(data.message);
      return data;
    },
    onError: (err) => console.error('Request error:', err),
  },
});

// 3. 在组件中使用
import { usePagination } from 'alova';

const { loading, data, page, pageSize, total, isLastPage } = usePagination(
  (page, pageSize) => alovaInstance.Get('/api/todos', {
    params: { page, pageSize }
  }),
  {
    pageSize: 20,
    preloadPreviousPage: true,
    preloadNextPage: true,
  }
);

快速上手(Taro React)#

code
// pnpm add alova @alova/adapter-taro

import { createAlova } from 'alova';
import AdapterTaro from '@alova/adapter-taro';
import { ReactHook } from '@alova/adapter-ui-react';

export const alovaInstance = createAlova({
  baseURL: 'https://api.example.com',
  ...AdapterTaro(),
  statesHook: ReactHook,
});

// 在组件中使用 useForm
import { useForm } from 'alova';

const {
  loading: submitting,
  form,
  send: submitForm,
  reset: resetForm,
} = useForm(
  formData => alovaInstance.Post('/api/submit', formData),
  {
    initialForm: { name: '', email: '' },
    resetAfterSubmiting: true,
  }
);

与 axios 的对比#

特性axiosalova
定位HTTP 客户端请求策略层
状态管理需自行管理内置 loading/error/data
分页策略需手写usePagination 开箱即用
表单策略需手写useForm 开箱即用
缓存需自行实现多级缓存 + 声明式失效
跨框架无状态,通用React/Vue/Svelte/Solid
小程序适配需手动封装官方适配器
TypeScript可选端到端类型安全

常见陷阱#

  1. 适配器版本匹配:alova v3.x 需搭配 @alova/adapter-uniapp v2.x+,旧版适配器不兼容
  2. VueHook / ReactHook 引入:需从 @alova/adapter-ui-vue@alova/adapter-ui-react 单独引入,不在核心包中
  3. uni-app nvue 页面:nvue 页面不支持 Vue3 Composition API 的全部能力,部分 Hook 可能行为不同
  4. 小程序并发限制:微信小程序 wx.request 并发上限 10,alova 不会自动排队,需配合 alova/server 的限流策略

生态资源#

适配器包#

包名说明版本
@alova/adapter-uniappuni-app 适配器(Vue2/Vue3)41
@alova/adapter-taroTaro 适配器(React/Vue)32
@alova/adapter-ui-vueVue 状态 Hook
@alova/adapter-ui-reactReact 状态 Hook
@alova/adapter-fetch原生 Fetch 适配器
@alova/adapter-xhrXMLHttpRequest 适配器

配套工具#

工具说明
wormaOpenAPI → 类型安全调用代码 + TS 类型 + API 文档 + AI 知识
alova/server服务端请求治理(限流 / 重试 / 分布式)

社区资源#

版本更新#

当前状态(2026-08-01 核实)#

  • GitHub:4009⭐ / 148 forks
  • npm:v3.5.3,225 个版本
  • 最近推送:2026-07-25
  • 创建日期:2022-10-27

迭代频率#

  • 225 个 npm 版本(2022-10 至今),平均每周 1-2 个版本
  • v3.x 为当前大版本,完全重构了适配器体系
  • 持续跟进 React/Vue/Taro/uni-app 生态更新

核实记录#

  • 2026-08-01:GitHub API + npm registry 核实,4009⭐ / v3.5.3 / 225 versions / 最后推送 2026-07-25,状态极度活跃。@alova/adapter-uniapp 41 版本、@alova/adapter-taro 32 版本均持续维护。alova 是小程序网络请求管理领域最系统化的解决方案。

支持平台