@cran/vue.use
Version:
Cranberry Vue Use Utilities
13 lines (12 loc) • 495 B
JavaScript
/* eslint-disable @typescript-eslint/unified-signatures */
import { useLifecycleWatch } from "../state/useLifecycleWatch";
export function useEventListener(target, eventName, handler, options) {
useLifecycleWatch(target, function onChange(next, prev) {
if (next) {
next.addEventListener(eventName, handler, options);
}
if (prev) {
prev.removeEventListener(eventName, handler, options);
}
}, { immediate: true, flush: "post", });
}