当前位置: 首页 > news >正文

盐城做网站价格公司网站建设情况说明

盐城做网站价格,公司网站建设情况说明,经典网站欣赏、,薪酬体系搭建工具背景 项目开发过程中,有些场景,需要跨页面进行数据传递。按照安卓开发的思路,在flutter实现一个事件总线EventBus,进行数据传递 原理 通过dart的签名函数,进行监听集合设置,然后post分发的时候&#xff…

背景

项目开发过程中,有些场景,需要跨页面进行数据传递。按照安卓开发的思路,在flutter实现一个事件总线EventBus,进行数据传递

原理

通过dart的签名函数,进行监听集合设置,然后post分发的时候,进行集合遍历,回调,实现事件传递。

实现过程

总体思路,就是通过一个订阅,取消订阅,遍历订阅对象,进行数据传递。
下面直接上代码:

//发布者接口
import 'package:ftplayer/common/utils/LogUtils.dart';abstract class IPublisher {void post<T>(T event);
}//订阅者:函数对象
typedef ISubscriber<T> = void Function(T event);//集中式通信,
//1.IEventBus继承IPublisher,分发数据
//2.IEventBus注册和取消注册ISubscriber
abstract class IEventBus extends IPublisher {void register<T>(ISubscriber<T> subscriber);void unregister<T>(ISubscriber<T> subscriber);
}Type typeOf<T>() => T;class XEventBus implements IEventBus {//我们用map存放我们的订阅者。不同订阅者订阅的Event类型可能是不同的Map<Type, List<Function>> map = {};@overridevoid register<T>(ISubscriber<T> subscriber) {Type type = typeOf<T>();if (!map.containsKey(type)) {map[type] = [];}map[type]?.add(subscriber);}@overridevoid unregister<T>(ISubscriber<T> subscriber) {Type type = typeOf<T>();if (map.containsKey(type)) {map[type]?.remove(subscriber);}}//发布@overridevoid post<T>(T event) {Type type = typeOf<T>();if (map.containsKey(type)) {var subscribers = map[type];subscribers?.forEach((subscriber) => subscriber.call(event));}}
}//外部调用方法
class EventBusProvider {static final EventBusProvider _instance = EventBusProvider._internal();XEventBus _singleEventBus = XEventBus();factory EventBusProvider() {return _instance;}EventBusProvider._internal();XEventBus singleEventBus() {return _singleEventBus;}XEventBus newEventBus() {return XEventBus();}
}

调用

late ISubscriber<LoginStatusEvent> loginSub;loginSub = (event) {loginStatus(event);};_eventBus.register(loginSub);_eventBus.unregister(loginSub);getEventBus().post(LoginStatusEvent(fromPageType: 0));

上述代码中,getEventBus()就是获取的EventBus对象,这里可以是单例,或者是new多个对象。主要看项目的情况决定。

that’s all----------------------------------------------------------------

http://www.yayakq.cn/news/333263/

相关文章:

  • 张家口网站建设制作家教网站如何做
  • 兰州网站建设和推广wordpress 预约
  • 东莞网站建设优化方案网络营销的企业有哪些
  • 苏州街网站建设wordpress不同分类不同广告 文章属于不同分类
  • 网站制作都有什么公司需要网站建设
  • 网站建设完整教程视频教程曹县做网站建设
  • 域客士单页网站wordpress单页留言聊天
  • 青海城乡建设厅网站me域名公司网站
  • 最早做弹幕的网站福州百度网站快速优化
  • 如何免费创建网站平台视频网站开发需求分析
  • 免费网站建站工具杭州市区网站制作单位
  • 做果蔬零售的网站溧阳有做网站的吗
  • 装修行业网站建设四川网站建设scyiyou
  • 重庆省建设厅网站一键生成logo免费在线网页
  • 15年做哪个网站能致富如何做网销
  • 河南省商丘网站wordpress文章网址采集
  • 企业网站建设费用预算微信公众号运营策划方案
  • 化妆品网站建设推广方案网站开发 发表文章
  • 大气 网站源码服务器域名是什么
  • 建设工程材料登记备案申请网站wordpress相册主题
  • 网络推广及网站建设合作协议如何在网站中做二级下拉菜单
  • 教我做网站wordpress修改注册人数
  • 网站建设与管理培训活动总结企业qq官网电话
  • 业务网站制作个人免费开发网站
  • 企业商务网站有哪些策划案需要给做网站吗
  • 网站帮助潍坊网站建设求职简历
  • 网站做跳转影响排名吗南京专业网站制作
  • 公司网站开发怎么做如何推广品牌知名度
  • 怎么样在网站做产品推广wordpress运行php
  • 建自己的网站做外贸中国机械加工网网址