chore: prefer using unref

This commit is contained in:
chenjiahan 2020-09-09 10:19:23 +08:00
parent 53d69b3e3a
commit 250c0aa330
2 changed files with 18 additions and 18 deletions

View File

@ -1,8 +1,7 @@
import { on, off } from '../utils/dom/event';
import {
Ref,
ref,
isRef,
unref,
watch,
onMounted,
onActivated,
@ -11,7 +10,7 @@ import {
} from 'vue';
export function useGlobalEvent(
target: Ref<EventTarget>,
target: EventTarget | Ref<EventTarget>,
event: string,
handler: EventListener,
passive = false,
@ -19,25 +18,24 @@ export function useGlobalEvent(
) {
let binded: boolean;
if (!isRef(target)) {
target = ref(target);
}
const add = () => {
const element = unref(target);
function add() {
if (binded || (flag && !flag.value) || !target.value) {
if (binded || (flag && !flag.value) || !element) {
return;
}
on(target.value, event, handler, passive);
on(element, event, handler, passive);
binded = true;
}
};
function remove() {
if (binded && target.value) {
off(target.value, event, handler);
const remove = () => {
const element = unref(target);
if (binded && element) {
off(element, event, handler);
binded = false;
}
}
};
if (flag) {
watch(flag, () => {

View File

@ -1,13 +1,15 @@
import { Ref, ref, onMounted, nextTick } from 'vue';
import { Ref, ref, unref, onMounted, nextTick } from 'vue';
export const useRect = (el: Ref<Element>) => el.value.getBoundingClientRect();
export const useRect = (element: Element | Ref<Element>) => {
return unref(element).getBoundingClientRect();
};
export const useHeight = (el: Ref<Element>) => {
export const useHeight = (element: Element | Ref<Element>) => {
const height = ref();
onMounted(() => {
nextTick(() => {
height.value = useRect(el).height;
height.value = useRect(element).height;
});
});