HarmonyOS开发中 事件触发相关问题?

现在有个发送消息场景:
父组件(创建与发送消息逻辑) --> A子组件 --> B子组件 --> B-1子组 --> C子组件
在A组件 B组件 C组件以及子组件的子组件B-1子组件中, 都需要触发到发送不同类型值去进行消息创建与发送消息逻辑,这个时候能选择的实现方式
①有接口一级一级回调②使用Emitter等。
通过接口传入感觉就很冗余,所以想问一下,能使用Emitter来通知父组件进行统一的消息处理和发送吗?
会不会有什么性能问题呢?有没有更加推荐的实现方式呢?

本文参与了 【 HarmonyOS NEXT 技术问答冲榜,等你来战!】欢迎正在阅读的你也加入。

阅读 497
1 个回答

emitter没有限制事件队列,本身的消息处理能力与应用有关,当前场景应该不会出现性能问题。可以把接口传入的方法封装成工具类等进行调用。
LocalStorage可以实现页面级的UI状态存储,您看看是否能满足您的需求,参考文档:
https://developer.huawei.com/consumer/cn/doc/harmonyos-guides...
可以看下eventHub能否满足需求,一般用于同一线程内。不同线程可以使用emitter,参考:
https://developer.huawei.com/consumer/cn/doc/harmonyos-refere...
https://developer.huawei.com/consumer/cn/doc/harmonyos-refere...
1、eventHub使用上性能较优,可以替代provide/consume
2、实现对应需求,修改demo,具体为:page1到page2的方式改为router.replaceUrl,eventHub事件回调修改为箭头函数,例如:
eventFunc: (good: Good) => void = (good: Good) => { good.run() }
另外,eventHub取消订阅时,需要指定具体回调,否则会取消该事件所有的事件订阅,参考:
https://developer.huawei.com/consumer/cn/doc/harmonyos-refere...

本文参与了 【 HarmonyOS NEXT 技术问答冲榜,等你来战!】欢迎正在阅读的你也加入。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题