Flutter代码生成插件keeper_codegen的使用
Flutter代码生成插件keeper_codegen的使用
Keeper Codegen 是一个用于提供代码生成的包,适用于 Keeper。
特性
- ✅ 支持常见类
- ❌ 不支持 MobX 存储
开始使用
这个包用于与 Keeper 一起使用,以便为存储类字段到不同存储容器提供简易设置。
首先,确保你的项目已经配置好使用 Keeper。然后运行以下命令来生成执行所有魔法操作的文件。✨
使用方法
在 pubspec.yaml
文件中:
dev_dependencies:
build_runner: ^2.1.5 # 检查 pub.dev 上的最新版本
keeper_codegen: ^0.0.1
为了生成你的类的 .g.dart
文件,运行以下命令:
flutter pub run build_runner build
额外信息
Keeper 项目的代码可以在 GitHub 上找到。
欢迎贡献和提交错误报告!请包含相关信息以帮助解决错误。
该项目在 MIT 许可证 下授权。
示例代码
项目结构
假设你有一个简单的项目结构如下:
my_project/
├── lib/
│ ├── main.dart
│ └── user_model.dart
├── pubspec.yaml
└── ...
pubspec.yaml
在 pubspec.yaml
中添加依赖项:
dev_dependencies:
build_runner: ^2.1.5 # 检查 pub.dev 上的最新版本
keeper_codegen: ^0.0.1
user_model.dart
创建一个简单的用户模型类,并使用 @Generate
注解标记它:
import 'package:keeper/keeper.dart';
// 定义一个简单的用户模型类
class UserModel {
final String name;
final int age;
UserModel({required this.name, required this.age});
}
// 使用 @Generate 注解标记这个类
@Generate()
class GeneratedUserModel extends UserModel {
// 自动生成的构造函数和其他方法
}
main.dart
在主文件中使用生成的类:
import 'package:flutter/material.dart';
import 'package:keeper/keeper.dart';
import 'user_model.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
appBar: AppBar(
title: Text('Keeper Codegen Example'),
),
body: Center(
child: Text(
'Hello, Keeper Codegen!',
style: TextStyle(fontSize: 24),
),
),
),
);
}
}
// 在主函数中运行代码生成器
Future<void> mainRunner() async {
await build();
runApp(MyApp());
}
运行代码生成
在终端中运行以下命令来生成 .g.dart
文件:
flutter pub run build_runner build
更多关于Flutter代码生成插件keeper_codegen的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html
更多关于Flutter代码生成插件keeper_codegen的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
keeper_codegen
是一个用于 Flutter 的代码生成插件,通常与 keeper
包一起使用,用于简化状态管理和依赖注入的代码生成。keeper
是一个轻量级的状态管理工具,而 keeper_codegen
则通过生成代码来减少手动编写样板代码的工作量。
使用步骤
1. 添加依赖
首先,在你的 pubspec.yaml
文件中添加 keeper
和 keeper_codegen
依赖:
dependencies:
flutter:
sdk: flutter
keeper: ^最新版本
dev_dependencies:
build_runner: ^最新版本
keeper_codegen: ^最新版本
运行 flutter pub get
以安装依赖。
2. 创建模型类
假设你有一个简单的 User
类,你希望使用 keeper
来管理它的状态。
import 'package:keeper/keeper.dart';
@KeeperModel()
class User {
final String name;
final int age;
User(this.name, this.age);
}
@KeeperModel()
注解告诉 keeper_codegen
为这个类生成相应的代码。
3. 生成代码
在终端中运行以下命令来生成代码:
flutter pub run build_runner build
这将生成一个与 User
类相关的文件,例如 user.keeper.dart
,其中包含用于状态管理的代码。
4. 使用生成的代码
生成的代码通常会包含一个 UserKeeper
类,你可以使用它来管理 User
状态。
import 'package:flutter/material.dart';
import 'user.dart'; // 导入你的 User 类
import 'user.keeper.dart'; // 导入生成的代码
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
[@override](/user/override)
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
appBar: AppBar(title: Text('Keeper Example')),
body: UserProvider(
user: User('John Doe', 30),
child: UserView(),
),
),
);
}
}
class UserView extends StatelessWidget {
[@override](/user/override)
Widget build(BuildContext context) {
final userKeeper = UserKeeper.of(context);
final user = userKeeper.user;
return Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
Text('Name: ${user.name}'),
Text('Age: ${user.age}'),
ElevatedButton(
onPressed: () {
userKeeper.updateUser(User('Jane Doe', 25));
},
child: Text('Update User'),
),
],
),
);
}
}