前言
在 Flutter 轻量化响应式开发中,rxflare 是一款超轻量、零侵入的状态管理库,核心 API 只有 .obs 与 Rx 组件,上手成本极低,性能优秀。
今天用一段最精简的代码,带你快速掌握 rxflare 的核心用法:一行代码把变量变成响应式,自动刷新 UI。
一、核心亮点
- 无需
setState - 无需
StatefulWidget - 无需任何复杂模板
- 仅
.obs+Rx两个核心 API - 超轻量、无侵入、编译快
二、依赖安装
在 pubspec.yaml 添加:
yaml
yaml
dependencies:
flutter:
sdk: flutter
rxflare: ^1.5.1 # 请使用最新版
执行:
plaintext
arduino
flutter pub get
三、完整可运行代码
dart
less
import 'package:flutter/material.dart';
import 'package:rxflare/rxflare.dart';
class RxFlareDemo extends StatelessWidget {
const RxFlareDemo({super.key});
// 1. 定义响应式变量:.obs 一键响应式
final count = 0.obs;
final name = "张三".obs;
final isActive = true.obs;
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: const Text("rxflare 响应式实战"),
),
body: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
// 2. Rx 组件:自动监听变量变化并刷新
Rx(
() => Column(
children: [
Text('姓名:${name.value}', style: const TextStyle(fontSize: 28)),
Text('计数:${count.value}', style: const TextStyle(fontSize: 42, color: Colors.deepPurple)),
Text(
'状态:${isActive.value ? "🟢 激活" : "🔴 关闭"}',
style: const TextStyle(fontSize: 24),
),
],
),
),
const SizedBox(height: 60),
// 3. 操作按钮:修改 .value 即可触发 UI 刷新
Row(
mainAxisAlignment: MainAxisAlignment.center,
children: [
FloatingActionButton(
onPressed: () => count.value++,
child: const Icon(Icons.add),
),
const SizedBox(width: 20),
FloatingActionButton(
onPressed: () => name.value = name.value == "张三" ? "李四" : "张三",
child: const Icon(Icons.person),
),
const SizedBox(width: 20),
FloatingActionButton(
onPressed: () => isActive.value = !isActive.value,
child: const Icon(Icons.power_settings_new),
),
],
),
],
),
),
);
}
}
void main() {
runApp(const MaterialApp(
home: RxFlareDemo(),
));
}
四、代码核心解析
1. 响应式变量
dart
ini
final count = 0.obs;
final name = "张三".obs;
final isActive = true.obs;
- 任何基础类型(int / String /bool)加 .obs → 立即变成响应式变量
- 取值:
变量.value - 赋值:
变量.value = 新值
2. Rx 响应式组件
dart
scss
Rx(() => 你的UI组件)
Rx会自动监听内部使用的所有.obs变量- 变量变化 → 自动重建 UI
- 无需任何状态类、无需 setState
3. 修改变量自动刷新
dart
ini
count.value++;
name.value = "李四";
isActive.value = !isActive.value;
- 只需要修改
.value,UI 就会自动刷新 - 极简、直观、高性能
五、运行效果
- 点击 ➕ 按钮:计数自动增加
- 点击 👤 按钮:姓名在 张三 ↔ 李四 切换
- 点击 ⚡ 按钮:状态在 激活 ↔ 关闭 切换
- 全程无状态类、无 setState
六、rxflare 适合谁?
- 喜欢极简代码的开发者
- 不想学习复杂状态管理(Provider、Bloc、GetX)的新手
- 需要轻量、快速实现响应式的项目
- 追求无侵入、无模板的团队
七、总结
rxflare 真正做到了:
- 一行 .obs 开启响应式
- 一个 Rx 组件自动刷新
- 全程无状态、无模板、无侵入
如果你追求极简、高效、轻量的 Flutter 状态管理,rxflare 绝对是首选。