use_request library
Flutter 的 useRequest 风格异步请求管理库。
统一从该入口引入:
import 'package:use_request/use_request.dart';
Classes
- AppFocusManager
- 聚焦事件管理器(应用生命周期) 使用 WidgetsBindingObserver 监听应用进入前台与后台
-
CacheCoordinator<
T> - 简单的缓存策略辅助:基于 cacheKey 进行去重和 SWR 再验证。
-
Debouncer<
T> - 防抖工具类
- DioHttpAdapter
- Dio HTTP 适配器
- HttpRequestConfig
- HTTP 请求配置
- LoadingDelayController
- loading 延迟控制器 用于避免非常快速的请求出现闪烁式的 loading
- OfflineDetector
- 占位的离线检测接口,可由外部接入 Connectivity 等实现。
- PaginationHelpers
- 提供基于 page/pageSize 的辅助生成器
-
PendingRequestEntry<
T> - 进行中的请求条目(用于请求去重)
-
PollingController<
T> - 轮询控制器
- RequestCache
- 请求缓存管理器(静态单例)
-
RequestCacheEntry<
T> - 请求缓存条目
- RetryConfig
- 重试配置类
-
RetryExecutor<
T> - 失败自动重试执行器
-
Throttler<
T> - 节流工具类
-
UseRequestBuilder<
TData, TParams> - 提供 useRequest 能力的组件
-
UseRequestNotifier<
TData, TParams> - 请求状态管理的 StateNotifier 实现
- UseRequestObserver
- 全局请求观察者接口
-
UseRequestOptions<
TData, TParams> - useRequest 的配置项
-
UseRequestResult<
TData, TParams> - useRequest 的返回结果对象
-
UseRequestState<
TData, TParams> - useRequest 内部状态
Enums
- HttpMethod
- HTTP 请求方法枚举
Mixins
-
UseRequestMixin<
TData, TParams> - 在 ConsumerStatefulWidget 中以 Hook 风格使用的 Mixin
Extensions
-
UseRequestResultExtension
on UseRequestState<
TData, TParams> - 便捷状态判断扩展
Functions
-
clearAllCache(
) → void - 清空所有缓存(便捷函数)
-
clearCacheEntry(
String key) → void - 清除指定键的缓存(便捷函数)
-
createDebouncer<
T> (Duration duration, {bool leading = false, bool trailing = true, Duration? maxWait}) → Debouncer< T> - 创建防抖器(工厂函数)
-
createDioService<
T> (DioHttpAdapter adapter, {T transformer(Response response)?}) → Future< T> Function(HttpRequestConfig config) - 创建与 useRequest 集成的 Service 函数
-
createFocusManager(
{required VoidCallback onFocus, VoidCallback? onBlur}) → AppFocusManager - 创建聚焦管理器的函数式辅助
-
createLinkedCancelToken(
[CancelToken? external]) → CancelToken - 创建一个与外部 CancelToken 关联的内部 CancelToken。 内部 token 会在外部被取消时同步取消,但不会反向取消外部 token, 避免复用外部 token 被频繁 cancel 后失效的问题。
-
createPolling<
T> ({required Duration interval, required Future< T> action(), bool shouldPoll()?, void onSuccess(T result)?, void onError(dynamic error)?}) → PollingController<T> - 创建轮询控制器(工厂函数)
-
createThrottler<
T> (Duration duration, {bool leading = true, bool trailing = true, Duration? maxWait}) → Throttler< T> - 创建节流器(工厂函数)
-
createUseRequestProvider<
TData, TParams> ({required Service< TData, TParams> service, UseRequestOptions<TData, TParams> ? options}) → StateNotifierProvider<UseRequestNotifier< TData, TParams> , UseRequestState<TData, TParams> > - useRequest 的 Provider 工厂 用法示例:
-
executeWithLoadingDelay<
T> ({required Future< T> action(), required Duration delay, required void onLoadingChange(bool loading)}) → Future<T> - 包装一个异步操作,自动处理 loading 延迟
-
executeWithRetry<
T> (Future< T> action(), {int maxRetries = 3, Duration retryInterval = const Duration(seconds: 1), bool shouldRetry(dynamic error)?, CancelToken? cancelToken, void onRetry(int attempt, dynamic error)?, bool exponential = false}) → Future<T> - 执行带重试逻辑的异步函数(函数式 API)
-
getCache<
T> (String key, {Duration? cacheTime}) → RequestCacheEntry< T> ? - 获取缓存数据(便捷函数)
-
getPendingCache<
T> (String key) → Future< T> ? - 获取进行中的请求(便捷函数)
-
notifyRequestObserverCacheHit(
String cacheKey, bool isStale) → void -
notifyRequestObserverCancel(
String key) → void -
notifyRequestObserverError(
String key, Object error, Object? params) → void -
notifyRequestObserverFinally(
String key, Object? params) → void -
notifyRequestObserverMutate(
String key, Object? oldData, Object? newData) → void -
notifyRequestObserverRequest(
String key, Object? params) → void -
notifyRequestObserverSuccess(
String key, Object? data, Object? params) → void -
setCache<
T> (String key, T data) → void - 设置缓存数据(便捷函数)
-
setPendingCache<
T> (String key, Future< T> future) → void - 存储进行中的请求(便捷函数)
-
useRequest<
TData, TParams> (Service< TData, TParams> service, {UseRequestOptions<TData, TParams> ? options}) → UseRequestResult<TData, TParams> - useRequest Hook 实现 借鉴 ahooks 的数据请求能力并结合 Dart/Flutter 特性
Typedefs
-
OnBefore<
TParams> = void Function(TParams params) - 请求开始前的回调
-
OnError<
TParams> = void Function(dynamic error, TParams params) - 请求失败回调
-
OnFinally<
TData, TParams> = void Function(TParams params, TData? data, dynamic error) - 请求完成回调(无论成功或失败都会触发)
-
OnRetryAttempt<
TParams> = void Function(int attempt, dynamic error) - 重试尝试回调
-
OnSuccess<
TData, TParams> = void Function(TData data, TParams params) - 请求成功回调
-
PageDataMerger<
TData> = TData Function(TData? previous, TData next) -
PageHasMore<
TData> = bool Function(TData? data) -
PageParamBuilder<
TParams, TData> = TParams Function(int page, int pageSize, TParams? origin) -
Service<
TData, TParams> = Future< TData> Function(TParams params) - Service 函数类型,负责实际的异步操作(通常是网络请求)
Exceptions / Errors
- DebounceCancelledException
- 防抖取消异常
- RequestCancelledException
- 当请求被取消时抛出
- RequestSupersededException
- 当请求被更新的请求覆盖时抛出
- RetryCancelledException
- 重试取消异常
- ThrottleCancelledException
- 节流取消异常