Flutter事件生成与管理插件eventified_generator的使用
Flutter事件生成与管理插件eventified_generator的使用
Eventified
将方法调用转换为事件流。
开始使用
在你的 pubspec.yaml
文件中添加以下依赖:
dependencies:
eventified:
dev_dependencies:
build_runner:
eventified_generator:
使用方法
1. 声明方法
首先声明一个类,该类定义一组公开的方法,并带有参数。使用 @eventified
注解标注该类。
在文件顶部添加 part 'example.g.dart';
声明。
方法的返回类型必须是
void
。
import 'package:eventified/eventified.dart';
part 'example.g.dart';
@eventified
abstract class Example {
void hello({
required bool world,
String? name,
});
void world(String name);
}
2. 生成事件类和流实现
运行构建工具命令来生成事件类和流实现:
dart run build_runner build
如果你使用的是 Flutter,可以运行以下命令:
flutter pub run build_runner build
3. 使用实现
/// 创建 `Streamed` 生成实现的实例。
final streamed = StreamedExample();
/// 监听从 `stream` 中发出的事件。
streamed.stream.listen((event) {
print(event);
});
/// 调用方法以触发相应的事件。
streamed
..hello(world: false, name: 'Jeff')
..world('john');
/// 上面的调用会在控制台打印:
///
/// HelloExampleEvent(
/// world : false,
/// name : Jeff,
/// )
/// WorldExampleEvent(
/// name : john,
/// )
/// 关闭底层的流。
streamed.dispose();
高级用法
通过注解可以自定义生成的类和行为。
自定义事件名称
你可以设置一个基础事件名称和特定的事件名称。
[@Eventified](/user/Eventified)(baseEvent: 'MyEvent')
abstract class ExampleCustomEventNames {
[@Event](/user/Event)(name: 'HelloEvent')
void hello({
required bool world,
String? name,
});
[@Event](/user/Event)(name: 'WorldEvent')
void world(String name);
}
添加元数据
你可以生成一个 $metadata
属性,允许在运行时反射事件及其参数。这可能对序列化特别有用。
[@Eventified](/user/Eventified)(metadata: true)
abstract class Example {
void hello({
required bool world,
String? name,
});
void world(String name);
}
元数据键也可以独立地使用 [@Event](/user/Event)
和 @EventArgument
注解进行自定义。
[@Eventified](/user/Eventified)(metadata: true)
abstract class Example {
[@Event](/user/Event)(metadata: 'Hello')
void hello({
required bool world,
@EventArgument(metadata: 'Name') String? name,
});
void world(String name);
}
更多关于Flutter事件生成与管理插件eventified_generator的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
更多关于Flutter事件生成与管理插件eventified_generator的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
eventified_generator
是一个用于 Flutter 的代码生成插件,旨在帮助开发者更轻松地管理和生成事件(Event)相关的代码。通过使用该插件,开发者可以减少手动编写重复代码的工作量,提高开发效率。
以下是如何使用 eventified_generator
插件的基本步骤:
1. 添加依赖
首先,在 pubspec.yaml
文件中添加 eventified_generator
和 build_runner
依赖:
dependencies:
flutter:
sdk: flutter
eventified: ^0.1.0 # 请使用最新版本
dev_dependencies:
build_runner: ^2.1.0
eventified_generator: ^0.1.0 # 请使用最新版本
2. 定义事件类
接下来,定义一个事件类并使用 @Eventified()
注解标记它。例如:
import 'package:eventified/eventified.dart';
@Eventified()
class UserEvent {
final String userId;
final String action;
UserEvent(this.userId, this.action);
}
3. 生成代码
运行 build_runner
来生成相关代码:
flutter pub run build_runner build
执行该命令后,eventified_generator
会自动生成一个与 UserEvent
相关的类,通常命名为 UserEventManager
或类似的名称。这个类包含了事件的管理逻辑,例如事件的触发、监听等。
4. 使用生成的代码
生成代码后,你可以在项目中使用它来管理事件。例如:
void main() {
final eventManager = UserEventManager();
// 监听事件
eventManager.listen((event) {
print('User event: ${event.userId}, ${event.action}');
});
// 触发事件
eventManager.trigger(UserEvent('123', 'login'));
}
5. 自定义生成代码
你可以通过 @Eventified()
注解的参数来定制生成的代码。例如,你可以指定生成的事件管理器的名称、是否生成某些方法等。
@Eventified(managerName: 'CustomUserEventManager')
class UserEvent {
final String userId;
final String action;
UserEvent(this.userId, this.action);
}
6. 清理生成的文件(可选)
如果你想要删除生成的文件,可以运行以下命令:
flutter pub run build_runner clean