ykt-wxapp/hooks/useOnceEvent.js

22 lines
553 B
JavaScript
Raw Permalink Normal View History

2026-01-20 13:21:50 +08:00
import { onLoad } from "@dcloudio/uni-app";
export function registerOnceEvent(callback, prefix = 'once_') {
// 生成一个唯一事件名
const eventName = `${prefix}${Date.now()}_${Math.floor(Math.random() * 10000)}`;
uni.$once(eventName, callback);
return eventName;
}
// 触发事件
export function triggerOnceEvent() {
let eventName = '';
onLoad((e) => {
eventName = e.eventName;
})
function trigger(data) {
if (eventName && typeof eventName === 'string') {
uni.$emit(eventName, data);
}
}
return trigger;
}