这个不用多说了,什么语言里都存在!
在工具包中 event_bus 是比较出名的,就用它吧!
pubspec.yaml
dependencies: # ... event_bus: ^2.0.1 # 发布订阅
创建 事件定义 文件,并初始化和定义事件
import 'package:event_bus/event_bus.dart'; ## 创建实例 EventBus eventBus = EventBus(); // 定义事件(在强语言中,根据类型来发射和订阅不同事件,而在js中是通过自定义的name) class PlayEvent { final Map<String, dynamic> data; PlayEvent(this.data); } class CustomEvent { final Map<String, dynamic> data; CustomEvent(this.data); }
import 'package:imusic/emiiter.dart'; /* * 入口函数 * */ void main() { // 注册监听 eventBus.on<PlayEvent>().listen((event) { print('Received play event: ${event}'); }); // 发射事件 eventBus.fire(CustomEvent({'name': '张三'})); runApp(const MyApp()); }