chore: add src-next folder

This commit is contained in:
chenjiahan
2020-07-04 21:20:01 +08:00
parent 34c594fd79
commit 18a3e80864
6 changed files with 7 additions and 6 deletions
+46
View File
@@ -0,0 +1,46 @@
import { on, off } from '../../src/utils/dom/event';
import {
Ref,
watch,
onMounted,
onActivated,
onUnmounted,
onDeactivated
} from 'vue';
export function useGlobalEvent(
target: EventTarget,
event: string,
handler: EventListener,
passive = false,
flag?: Ref<boolean>
) {
let binded: boolean;
function add() {
if (binded || (flag && !flag.value)) {
return;
}
on(target, event, handler, passive);
binded = true;
}
function remove() {
if (binded) {
off(target, event, handler);
binded = false;
}
}
if (flag) {
watch(() => {
flag.value ? add() : remove();
});
}
onMounted(add);
onActivated(add);
onUnmounted(remove);
onDeactivated(remove);
}