From 250c0aa330728a0fa7575bfcc43e27663e95a127 Mon Sep 17 00:00:00 2001 From: chenjiahan Date: Wed, 9 Sep 2020 10:19:23 +0800 Subject: [PATCH] chore: prefer using unref --- src/composition/use-global-event.ts | 26 ++++++++++++-------------- src/composition/use-rect.ts | 10 ++++++---- 2 files changed, 18 insertions(+), 18 deletions(-) diff --git a/src/composition/use-global-event.ts b/src/composition/use-global-event.ts index e1b0bae21..6d227742f 100644 --- a/src/composition/use-global-event.ts +++ b/src/composition/use-global-event.ts @@ -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, + target: EventTarget | Ref, 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, () => { diff --git a/src/composition/use-rect.ts b/src/composition/use-rect.ts index 48ebec2fb..090827f94 100644 --- a/src/composition/use-rect.ts +++ b/src/composition/use-rect.ts @@ -1,13 +1,15 @@ -import { Ref, ref, onMounted, nextTick } from 'vue'; +import { Ref, ref, unref, onMounted, nextTick } from 'vue'; -export const useRect = (el: Ref) => el.value.getBoundingClientRect(); +export const useRect = (element: Element | Ref) => { + return unref(element).getBoundingClientRect(); +}; -export const useHeight = (el: Ref) => { +export const useHeight = (element: Element | Ref) => { const height = ref(); onMounted(() => { nextTick(() => { - height.value = useRect(el).height; + height.value = useRect(element).height; }); });