Skip to content

高级功能

WIP

该部分目前较为简陋。欢迎 PR 贡献!🫡

对于缓存、去重、重试的高级功能,建议结合 @tanstack/queryswrvvue-requestalova 等库使用。

如果你不希望引入过多的库导致占用体积过多,你也可以参考以下内容以实现部分高级功能。

缓存

请参考 Axios 如何缓存请求数据

去重

请参考 Axios 如何取消重复请求Axios 如何取消重复请求?取消重复请求方法有哪几种?

重试

请参考 Axios 如何实现请求重试?

响应失败不抛出错误

在某些情况下,你可能不希望响应失败抛出错误,这时候可以使用响应拦截器来处理。

typescript
import { un } from '@uni-helper/uni-network';

// 添加响应拦截器
un.interceptors.response.use(
  (response) => response,
  // 直接返回错误,不再需要使用 catch 来捕获
  // 需要注意返回值可能是 UnError 类型
  (error) => error,
);

无感刷新登录态

在某些情况下,你可能希望无感刷新登录态,避免当前登录态过期后用户手动登录。

如果你有一个可以使用过期登录态换取新鲜登录态的接口,请参考 uni-ajax - FAQ - 无感刷新 Token。 该部分代码实现略经修改也适用于使用双登录态的认证系统。

如果你正在使用一个使用双登录态的认证系统,请参考 项目中前端如何实现无感刷新 token!基于 Axios 封装一个完美的双 token 无感刷新

全局请求加载

请参考 uni-ajax - FAQ - 配置全局请求加载。这类做法不适用于局部加载展示。