#跟着晓明学鸿蒙# 鸿蒙Next开发中ohpm三方库使用指南之eventpost集成示例
·
EventPost
简介
EventPost是一款消息总线,具有生命周期感知能力,支持Sticky。
- 支持Sticky消息;
- 支持在组件初始化完成时自动注册
- 支持组件销毁时自动注销,防止内存泄漏;
下载安装
ohpm install eventpost
OpenHarmony ohpm 环境配置等更多内容,请参考如何安装 OpenHarmony ohpm 包
使用说明
可选初始化
import { EventPost } from "eventpost";
EventPost.setAllSticky(true | false)
注册订阅者
import { EventPost } from "eventpost";
EventPost.getDefault().on("msgId", (arg1:object, arg2:object) => {
})
- 使用限制,不添加callThis 则this指向 undefined 添加callThis,则this指向callThis
import {Subscriber} from "eventpost";
@Component
struct NextPage {
build(){
...
}
@Subscriber("msgId")
onMsg(arg1:object,arg2:object){
}
}
- 目前仅在使用装饰器的情况下能够感知组件生命周期
- 使用on的方法注册的话,需要自行off防止内存泄漏
发送消息
import { EventPost } from "eventpost";
EventPost.getDefault().post("msgId", "arg1", { params1: "bbb" })
接口说明
EventPost
方法名 | 入参 | 接口描述 |
---|---|---|
setAllSticky | boolean | 配置基础消息发送是否为粘性事假,默认为粘性,跨线配置非粘性,则每个线程均要初始化 |
on | string,function,sticky,callThis | 注册订阅方法,并配置是否支持粘性 |
off | string,function | 反注册订阅方法 |
once | string,function,callThis | 注册一次性订阅方法 |
post | string,...args:any[] | 发送消息(受配置影响) |
postStick | string,...args:any[] | 发送粘性消息 |
postNormal | string,...args:any[] | 发送非粘性消息 |
getTypeValue | string | 获取当前粘性事件 |
Subscriber 装饰器
接口名 | 功能描述描述 |
---|---|
TypeName | 消息ID |
sticky | 是否支持粘性 |
约束与限制
在下述版本验证通过:
DevEco Studio: 5.0.5.315, SDK: HarmonyOS 5.0.1 Release Ohos_sdk_public 5.0.1.115 (API Version 13 Release)
目录结构
|---- eventpost
| |---- AppScrope # 示例代码文件夹
| |---- entry # 示例代码文件夹
| |---- examples # 示例代码文件夹
| |---- library # eventpost库文件夹
| |---- build # eventpost模块打包后的文件
| |---- src/main/ets/eventpost # EventPost主入口
| |---- index.ets # 对外接口
| |---- README.md # 安装使用方法
| |---- CHANGELOG.md # 更新日志
贡献代码
使用过程中发现任何问题都可以提 Issue 给我,当然,我也非常欢迎你给我发 PR 。
开源协议
本项目基于 MIT license ,请自由地享受和参与开源。
更多推荐
所有评论(0)