flutter全局事件总线eventBus
来源:www.jianshu.com 更新时间:2023-05-25 21:55
eventBus 基本使用步骤
1、 在 pubspec.yaml
包文件中添加包文件名,并通过 flutter package get
下载包依赖
event_bus: ^1.1.1
2、 在需要使用 eventBus
的组件中引入包依赖文件
import 'package:event_bus/event_bus.dart';
3、 通常封装一个eventBus
事件总线的文件 event_bus.dart
// 引入 eventBus 包文件
import 'package:event_bus/event_bus.dart';
// 创建EventBus
EventBus eventBus = new EventBus();
// event 监听
class EventFn{
// 想要接收的数据时什么类型的,就定义相同类型的变量
dynamic obj;
EventFn(this.obj);
}
4、 在需要发送事件的文件中利用 eventBus.fir
发送事件
//引入封装的e vent_bus.dart 文件
import 'package:new_flutter/utils/event_bus.dart';
// 调用 eventBus.fir 发送事件信息
eventBus.fire(EventFn({
'a':'b',
'c':'e'
}));
5、 在需要监听的文件中,利用 eventBus.on< >().listen()
监听信息
// 注册监听器,订阅 eventbus
var eventBusFn = eventBus.on<EventFn>().listen((event) {
// event为 event.obj 即为 eventBus.dart 文件中定义的 EventFn 类中监听的数据
print(event.obj);
});
6、 在组件销毁时,一定要销毁监听,防止内存泄漏
@override
void dispose() {
super.dispose();
//取消订阅
eventBusFn.cancel();
}
上一篇: Flutter 强大的MediaQuery控件 下一篇:组件通信(父子、兄弟)