鸿蒙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,可实现跨组件、跨页面的轻量级通信,适用于状态通知或简单数据传递场景。
        
      
                  
                  
                  
