高级功能
WIP
该部分目前较为简陋。欢迎 PR 贡献!🫡
对于缓存、去重、重试的高级功能,建议结合 @tanstack/query、swrv、vue-request、alova 等库使用。
如果你不希望引入过多的库导致占用体积过多,你也可以参考以下内容以实现部分高级功能。
缓存
请参考 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 - 配置全局请求加载。这类做法不适用于局部加载展示。