HarmonyOS 5.0.0 或以上:ArkTS 实现页面与组件间的事件通信(EventHub 模式)

📌 场景介绍

在实际开发中,我们常常需要让多个组件或页面之间进行通信,比如子组件触发父组件的函数,或跨层级通知事件。HarmonyOS 提供 @ohos.eventhub 作为一种灵活的通信机制。


🧩 Step 1:创建 EventHub 实例
// common/eventHub.ts
import EventHub from '@ohos.eventhub';

const globalEventHub = new EventHub();
export default globalEventHub;

🧩 Step 2:在页面或组件中监听事件
// pages/home/home.ets
import globalEventHub from '../../common/eventHub';

@Entry
@Component
struct HomePage {
  private message: string = '';

  aboutToAppear() {
    globalEventHub.on('messageEvent', (data: string) => {
      this.message = data;
      console.info('收到消息:', data);
    });
  }

  build() {
    Column() {
      Text(`当前消息: ${this.message}`).fontSize(18)
    }
  }
}

🧩 Step 3:在另一个页面触发事件
// pages/setting/setting.ets
import globalEventHub from '../../common/eventHub';

@Entry
@Component
struct SettingPage {
  build() {
    Column() {
      Button
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值