# flu-core
**Repository Path**: flu-cli/flu-core
## Basic Information
- **Project Name**: flu-core
- **Description**: Flutter MVVM 核心库,支持多种状态管理器的可插拔架构
- **Primary Language**: Unknown
- **License**: MIT
- **Default Branch**: main
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2025-11-17
- **Last Updated**: 2025-11-20
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# Flu Core
Flutter MVVM 核心库,支持多种状态管理器的可插拔架构
特性 •
快速开始 •
高级功能 •
使用文档 •
更新日志
---
## 特性
- ✅ 统一的 MVVM 架构
- ✅ 支持多种状态管理器(ChangeNotifier、Provider、GetX、Riverpod)
- ✅ 开箱即用的通用功能(Loading、Error、Refresh、List)
- ✅ 完全解耦的业务代码
- ✅ 轻量级,按需加载
## 支持的状态管理器
| 状态管理器 | 版本要求 | 安装命令 |
| -------------- | -------- | ---------------------------------- |
| ChangeNotifier | 内置 | 无需安装 |
| Provider | ^6.1.1 | `flutter pub add provider` |
| GetX | ^4.6.6 | `flutter pub add get` |
| Riverpod | ^2.4.9 | `flutter pub add flutter_riverpod` |
## 快速开始
### 1. 使用 ChangeNotifier(默认)
```dart
// main.dart
import 'package:flu_core/flu_core.dart';
void main() {
StateManagerConfig.init(StateManagerType.changeNotifier);
runApp(const MyApp());
}
// viewmodels/home_viewmodel.dart
import 'package:flu_core/flu_core.dart';
class HomeViewModel extends BaseViewModel {
int _counter = 0;
int get counter => _counter;
void increment() {
_counter++;
notifyListeners();
}
}
// pages/home_page.dart
import 'package:flu_core/flu_core.dart';
class HomePage extends BasePage {
const HomePage({super.key});
@override
State createState() => _HomePageState();
}
class _HomePageState extends BasePageState {
@override
HomeViewModel createViewModel() => HomeViewModel();
@override
String get title => '首页';
@override
Widget buildContent(BuildContext context) {
return Center(
child: Text('Counter: ${viewModel.counter}'),
);
}
}
```
### 2. 使用其他状态管理器
#### Provider
```bash
flutter pub add provider
```
```dart
void main() {
StateManagerConfig.init(StateManagerType.provider);
runApp(const MyApp());
}
```
#### GetX
```bash
flutter pub add get
```
```dart
void main() {
StateManagerConfig.init(StateManagerType.getx);
runApp(const MyApp());
}
```
#### Riverpod
```bash
flutter pub add flutter_riverpod
```
```dart
void main() {
StateManagerConfig.init(StateManagerType.riverpod);
runApp(
const ProviderScope(
child: MyApp(),
),
);
}
```
## 高级功能
### 下拉刷新
```dart
class _HomePageState extends BasePageState
with RefreshMixin {
@override
Widget buildContent(BuildContext context) {
return buildWithRefresh(
// Your content
);
}
}
```
### 列表分页
```dart
class UserListViewModel extends BaseListViewModel {
@override
Future> fetchData(int page) async {
// Fetch data from API
}
}
class _UserListPageState extends BasePageState
with RefreshMixin, ListMixin {
@override
Widget buildContent(BuildContext context) {
return buildWithRefresh(
buildListView((context, index) {
final user = viewModel.items[index];
return ListTile(title: Text(user.name));
}),
);
}
}
```
## 安装
### 方式 1:从 Git 安装(推荐)
```yaml
dependencies:
flu_core:
git:
url: https://gitee.com/flu-cli/flu-core.git
ref: v0.0.1
```
### 方式 2:本地路径(开发时)
```yaml
dependencies:
flu_core:
path: ../flu-core
```
## 相关项目
- [Flu CLI](https://gitee.com/flu-cli/flu-cli) - Flutter MVVM 脚手架工具
- [Flu CLI Docs](https://gitee.com/flu-cli/flu-cli-docs) - 完整文档
- [Template Lite](https://gitee.com/flu-cli/template-lite) - 轻量级模板
- [Template Modular](https://gitee.com/flu-cli/template-modular) - 模块化模板
- [Template Clean](https://gitee.com/flu-cli/template-clean) - Clean Architecture 模板
## 贡献
欢迎提交 Issue 和 Pull Request!
## 许可证
[MIT License](./LICENSE)
## 联系方式
- Gitee: https://gitee.com/flu-cli
- Issues: https://gitee.com/flu-cli/flu-core/issues
---
**由火之夜工作室维护** ❤️