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(); + } + }); +}