与其他库比较
与 axios 对比
axios 提供了基于 promise 的非常简单易用的 HTTP 请求功能,只需要简单的一行代码即可发送和接收请求,并且可以在浏览器和 nodejs 环境下运行,是一个非常优秀的请求 js 库。
但是 axios 聚焦于请求发送和接收响应,这意味着如果你需要自行编写更多代码来主动优化请求功能,而 alova 像是 axios 的武器装备,将 axios 与 alova 组合使用可以获得更强大的请求能力,以下是 alova 为 axios 附加的请求管理能力。
alova 为 axios 提供自动 化请求状态管理
仅使用 axios 时,通常需要你自行维护请求相关状态,使用 alova 的 use hook 后可以获得自动化的请求状态管理能力。
- 仅axios
- axios+alova
// vue3代码示例
const loading = ref(false);
const data = ref({});
const error = ref(null);
const request = async () => {
try {
loading.value = true;
data.value = await axios.get('/xxx');
} catch (e) {
error.value = e;
}
loading.value = false;
};
mounted(request);
// 将axios作为alova的请求适配器
const { loading, data, error } = useRequest(alova.Get('/xxx'));
alova 提供开箱即用的高性能请求策略
alova 为你提供了多个高性能的请求策略模块,你可以根据不同请求场景使用不同的模块,这是 axios 不具备的。
alova 为 axios 提供响应数据缓存
alova 分别提供了 3 种缓存模式来满足不同的缓存场景,分别为内存模式、缓存占位模式、恢复模式。它们是组件无关的,只要请求地址和参数相同都可以命中缓存,除非你关闭了它。响应数据缓存可以极大地提高请求流畅性,降低服务端压力。