在正常的开发中,我们经常会用到跨页面事件通知,也就是广播机制。比如需要登录的app,页面会关注用户登陆或注销事件,来进行一些状态更新。这时候就需要一个事件总线,它通常实现订阅者模式,订阅者模式包含发布者和订阅者两种角色,可以通过事件总线来触发事件和监听事件。
功能:实现广播功能。
地址:https://pub.dev/packages/event_bus
一般有两种方式:
全局变量内实例化eventBus
在使用时调用(本次主要讲这种)
import 'package:event_bus/event_bus.dart';
EventBus eventBus = EventBus();
class TestEventBusEvent {
String test;
TestEventBusEvent(this.test);
}
import 'event_bus.dart.dart';
eventBus.fire(TestEventBusEvent("成功调用")
import 'event_bus.dart.dart';
/// 监听单个方法
eventBus.on<TestEventBusEvent>().listen((event) {
print(event.test);
});
/// 监听所有方法
eventBus.on().listen((event) {
print(event);
});
/// 取消监听
StreamSubscription testSubscription = eventBus.on<TestEventBusEvent>().listen((event) {
print(event.test);
});
testSubscription.cancel();