简体中文 | English
useRequest
面向 Flutter 的异步任务状态管理库,提供自动/手动执行、loading/error/data、刷新、轮询、防抖、节流、重试、缓存、取消和本地数据更新。service 可以是任意 Future;Dio 与 Riverpod 是当前 0.7.0 的内置集成。
安装
dependencies:
use_request: ^0.7.0
闭包模式
筛选条件或页面状态变化时,优先使用 useRequestFn:
class UserName extends HookWidget {
const UserName({super.key, required this.userId});
final int userId;
@override
Widget build(BuildContext context) {
final request = useRequestFn(
() => api.fetchUser(userId),
options: UseRequestOptions(refreshDeps: [userId]),
);
if (request.loading) return const CircularProgressIndicator();
if (request.error != null) return Text('${request.error}');
return Text(request.data?.name ?? 'No user');
}
}
显式参数模式
按钮、提交或搜索等一次性动作使用 run(params):
final request = useRequest<User, int>(
api.fetchUser,
options: const UseRequestOptions(manual: true),
);
ElevatedButton(
onPressed: () => request.run(42),
child: const Text('Load user'),
);
refreshDeps 只决定何时刷新;参数模式的 refresh() 会复用最近一次参数。条件本身就是参数时使用闭包模式。
文档与示例
import 'package:use_request/use_request.dart';
0.7.0 保持现有统一入口和公开 API。主包目前仍直接依赖 Dio、flutter_hooks、Riverpod 与 Web 可见性支持;仅调整导出文件不会让这些依赖变为可选。
验证
flutter analyze
flutter test
cd example && flutter test
cd ../website && flutter test && flutter build web
许可证见 LICENSE。
Libraries
- use_request
- Flutter 的
useRequest风格异步请求管理库。