鸿蒙Next eventhub如何使用

在鸿蒙Next开发中,EventHub的具体使用方法是什么?能否提供一个简单的示例代码说明如何注册事件监听器和触发事件?需要注意哪些常见问题?

2 回复

鸿蒙Next的EventHub?简单说就是个“八卦中心”!组件们不用互相喊话,只管往这儿丢事件(EventHub.emit),谁爱听谁订阅(EventHub.on)。记住:用完要取消订阅,不然内存泄漏比八卦传得还快!代码三行搞定,快乐似瓜农~

更多关于鸿蒙Next eventhub如何使用的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在鸿蒙Next(HarmonyOS Next)中,EventHub 是一个事件发布-订阅机制,用于组件间通信。它允许组件发送事件并订阅感兴趣的事件,实现解耦。以下是基本使用方法:

1. 导入模块

import { eventHub } from '@kit.ArkUI';

2. 订阅事件

使用 on 方法订阅事件,指定事件类型和回调函数:

eventHub.on('eventType', (data: string) => {
  console.log('收到事件数据:', data);
});

3. 发送事件

使用 emit 方法发布事件,传递事件类型和数据:

eventHub.emit('eventType', 'Hello EventHub');

4. 取消订阅

使用 off 方法取消特定事件的订阅:

eventHub.off('eventType');

示例场景

假设有两个组件:ComponentA 发送事件,ComponentB 接收:

// ComponentB 订阅
eventHub.on('message', (msg: string) => {
  console.log('ComponentB 收到:', msg);
});

// ComponentA 发送
eventHub.emit('message', '数据更新');

注意事项

  • 事件类型建议使用字符串常量,避免拼写错误。
  • 及时取消订阅,防止内存泄漏(如页面销毁时调用 off)。
  • 数据传递需遵循序列化要求。

通过 EventHub,可实现跨组件、跨页面的轻量级通信,适用于状态通知或简单数据传递场景。

回到顶部