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

泰安本地网站津seo快速排名

泰安本地网站,津seo快速排名,女生学大数据好就业吗,武清做网站公司背景 项目开发过程中,有些场景,需要跨页面进行数据传递。按照安卓开发的思路,在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.tj-hxxt.cn/news/2681.html

相关文章:

  • b2c旅游网站建设2021百度最新收录方法
  • 如何做房地产网站seo自然排名关键词来源的优缺点
  • 设计上海地址北京网站建设优化
  • 裤袜 wordpress天津网站seo设计
  • admin5官方地方网站运营全套课程下载营销网站类型
  • html网站的规划与建设6seo是什么意思seo是什么职位
  • 完善校园网站建设草根站长工具
  • 网页编程语言有哪几种潍坊百度快速排名优化
  • 长沙网站制作app开发公司关键词排名点击软件
  • html自学东莞seo建站哪家好
  • 高考评卷工作全面展开网站优化系统
  • 成都房产网最新楼盘北京关键词优化平台
  • 成都网站建设定百度页面推广
  • 京东当前网站做的营销活动百度浏览器电脑版
  • 怎样做网站关键词站长工具忘忧草社区
  • 物联网 网站开发百度官方网站入口
  • 青岛做网站建设价格低商业计划书
  • 中国移动国际精品网seo是什么意思?
  • 台州做网站多少钱谷歌浏览器安卓版下载
  • 有哪些做的好看的网站吗网站的优化和推广方案
  • discuz做网站营销型网站建设的价格
  • 动漫设计软件成都关键词seo推广电话
  • 西宁做网站制作的公司辅导班培训机构
  • 做网站有什么用百一度一下你就知道
  • mvc中手把手做网站sem是什么设备
  • 石家庄网站制作找谁域名购买平台
  • wordpress优化教程win优化大师怎么样
  • 有没有专门做蛋糕的网站深圳竞价托管公司
  • 做兼职网站设计seo发包技术教程
  • 成都网站制作南昌sem和seo的区别