From 6db84d7c2b24d6348881642f0a8933410ba10506 Mon Sep 17 00:00:00 2001 From: chenjiahan Date: Wed, 11 Nov 2020 20:43:24 +0800 Subject: [PATCH] feat(@vant/use): add onMountedOrActivated --- packages/vant-use/src/index.ts | 5 +++-- .../vant-use/src/onMountedOrActivated/index.ts | 18 ++++++++++++++++++ 2 files changed, 21 insertions(+), 2 deletions(-) create mode 100644 packages/vant-use/src/onMountedOrActivated/index.ts diff --git a/packages/vant-use/src/index.ts b/packages/vant-use/src/index.ts index 779ffe9b1..d1f1ee007 100644 --- a/packages/vant-use/src/index.ts +++ b/packages/vant-use/src/index.ts @@ -1,10 +1,11 @@ +export * from './utils'; export * from './useRect'; export * from './useToggle'; +export * from './useRelation'; export * from './useCountDown'; export * from './useClickAway'; export * from './useWindowSize'; export * from './useScrollParent'; export * from './useEventListener'; export * from './usePageVisibility'; -export * from './useRelation'; -export * from './utils'; +export * from './onMountedOrActivated'; diff --git a/packages/vant-use/src/onMountedOrActivated/index.ts b/packages/vant-use/src/onMountedOrActivated/index.ts new file mode 100644 index 000000000..4b748aaa8 --- /dev/null +++ b/packages/vant-use/src/onMountedOrActivated/index.ts @@ -0,0 +1,18 @@ +import { nextTick, onMounted, onActivated } from 'vue'; + +export function onMountedOrActivated(hook: () => any) { + let mounted: boolean; + + onMounted(() => { + hook(); + nextTick(() => { + mounted = true; + }); + }); + + onActivated(() => { + if (mounted) { + hook(); + } + }); +}