鸿蒙Next中EventBus如何使用

在鸿蒙Next中如何使用EventBus进行事件通信?能否提供一个简单的示例代码说明如何注册、发送和接收事件?另外,EventBus在鸿蒙Next中与传统的Android版本有什么区别或需要注意的地方?

2 回复

鸿蒙Next里用EventBus?简单!先导入@ohos.eventbus,注册事件监听器,然后用emitEvent发消息。记住:别乱发事件,不然代码会像追着尾巴跑的猫——忙得团团转!

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


在鸿蒙Next(HarmonyOS NEXT)中,EventBus 用于组件间的通信,实现事件的发布和订阅。以下是基本使用方法:

1. 添加依赖

build-profile.json5dependencies 中添加:

"dependencies": {
  "@ohos/eventbus": "1.0.0"
}

2. 定义事件类

创建一个普通类作为事件:

export class MessageEvent {
  message: string;

  constructor(message: string) {
    this.message = message;
  }
}

3. 订阅事件

在需要接收事件的组件中订阅:

import { eventBus } from '@ohos/eventbus';
import { MessageEvent } from './MessageEvent';

// 订阅事件
eventBus.on(MessageEvent, (event: MessageEvent) => {
  console.log(`收到消息: ${event.message}`);
});

4. 发布事件

在发送事件的组件中发布:

import { eventBus } from '@ohos/eventbus';
import { MessageEvent } from './MessageEvent';

// 发布事件
let event = new MessageEvent("Hello EventBus");
eventBus.emit(event);

5. 取消订阅

在组件销毁时取消订阅:

// 取消特定事件订阅
eventBus.off(MessageEvent, callback);

// 取消所有订阅
eventBus.off(MessageEvent);

注意事项:

  • 避免内存泄漏:在页面销毁时及时取消订阅
  • 事件类建议使用简单数据对象
  • 支持粘性事件(sticky events)

通过以上步骤即可实现鸿蒙Next中基于EventBus的组件通信。

回到顶部