26 Flutter仿京东商城项目 购物车之 event_bus事件广播 事件监听
event_bus 介绍
在前面的课程我们给大家讲过状态管理 Provider 的使用。
通俗的讲状态管理就是:当我们想在多个页面(组件/Widget)之间共享状态(数据),或
者一个页面(组件/Widget)中的多个子组件之间共享状态(数据),这个时候我们就可以
用 Flutter 中的状态管理来管理统一的状态(数据),实现不同组件直接的传值和数据共享。
event_bus 主要是实现不同组件之间的数据传值,以及在一个组件中
执行另一个组件的方法。
event_bus 使用 事件广播 事件监听
https://pub.dev/packages/event_bus
1、配置安装依赖
event_bus: ^1.1.0
2、新建一文件 EventBus.dart 配置如下代码
import 'package:event_bus/event_bus.dart';
//Bus 初始化
EventBus eventBus = EventBus();
class ProductContentEvent {
String text;
ProductContentEvent(String text){
this.text = text;
}
}
3、在需要广播事件的页面引入上面的 EventBus.dart 类 然后配置如下代码湖北众猿腾网络科技有限公司
eventBus.fire(new ProductContentEvent('购物车'));
4、在需要监听广播的地方引入上面的 EventBus.dart 类 然后配置如下代码
void initState() {
super.initState();
//监听广播
eventBus.on<ProductContentEvent>().listen((event){
print(event);
this._attrBottomSheet();
});
}
四、event_bus 取消事件监听
var actionSubscription =eventBus.on<ProductContentEvent>().listen((event){
print(event);
this._attrBottomSheet();
});
actionSubscription.cancel();
加群452892873 下载对应26课文件,运行方法,建好项目,直接替换lib目录,在往pubspec.yaml添加上一下扩展。内含本课pdf课件
cupertino_icons: ^0.1.2
flutter_swiper: ^1.1.6
flutter_screenutil: ^0.5.3
dio: ^2.1.13
shared_preferences: ^0.5.3+4
flutter_inappbrowser: ^1.2.1
provider: ^3.1.0
event_bus: ^1.1.0
本课关键文件:
lib/pages/ProductContent/ProductContentFirst.dart
lib/pages/ProductContent.dart
lib/services/EventBus.dart
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 字符编码:从基础到乱码解决
· 提示词工程——AI应用必不可少的技术