RxFlare 是 Flutter 的一个新兴轻量级响应式状态管理库,主打自动依赖追踪 + 字段/索引级精准更新,样板代码极少,性能较高,适合中小型项目作为 Provider/GetX/Bl
核心特点
- 自动依赖追踪:`Rx(() => ...)` 自动追踪 `.obs` 变量,精确重绘。
- 字段/索引级更新:Map/List 只更新变化的部分,性能好(尤其适合大表单、大列表)。
- Computed 计算属性:自动追踪依赖链。
- RxEventBus:模块化事件总线,支持 sticky、优先级、批量取消等。
- RxFuture:内置 Loading/Error/Success 状态处理。
- 依赖管理 & 路由:`RxObjMgr` + 简单路由支持。
- 自动释放:减少内存泄漏。
安装(pub.dev)
dependencies:
rxflare: ^1.5.0 # 检查最新版本
然后运行 `flutter pub get`。
基础用法示例
1. 简单计数器(自动依赖追踪)
dart
final count = 0.obs;Rx(() => Text("计数: ${count.value}"));
FloatingActionButton(
onPressed: () => count.value++,
child: Icon(Icons.add),
)
2. 多个变量 + 一个 Rx 块
dart
final name = "张三".obs;
final age = 20.obs;Rx(() => Text('${name.value},${age.value}岁'));
3. Map 字段级精准更新(核心优势)
dart
final user = {
"name": "张三",
"age": 25,
}.obs; // 或使用 obsMap / RxState<Map>Rx(() => Text("姓名: ${user.getItem('name')}")); // 只监听 name
// 精准更新
user.updateField("name", "李四"); // 仅 name 相关的 Rx 重绘
4. List 索引级更新
dart
final items = ["A", "B", "C"].obs;Rx(() => Text("Item 1: ${items.getItem(1)}"));
items.updateField(1, "🔥B 已修改"); // 只刷新第2项
5. Computed 计算属性
dart
final price = 99.obs;
final quantity = 1.obs;late final total = computed(() => price.value * quantity.value);
late final isExpensive = computed(() => total.value > 500);Rx(() => Text("总价: ${total.value} 元"));
6. 手动指定依赖(Rx.custom)
dart
Rx.custom(
deps: [count], // 只监听 count
builder: () => Text("count: ${count.value}"),
);
其他功能
- RxFuture:异步加载状态管理(Loading/Error/Data)。
- RxEventBus:模块化事件通信(`on` / `notify` / `off`)。
- 路由:`rxr.to()` 等简单路由支持。
推荐场景
- 中小型项目,想极简 + 高性能。
- 需要字段/列表项精准更新的复杂表单或长列表。
- 希望 boilerplate 远少于 Bloc/Provider 的场景。
更多详情可查看:
- pub.dev 官方页面:https://pub.dev/packages/rxflare (包含完整 Example)
需要具体示例代码、与 GetX/Provider 对比,或某个功能的深入演示,告诉我我再帮你细化!
更多推荐
所有评论(0)