vue-vben-admin/packages/hooks/src/onMountedOrActivated.ts

26 lines
480 B
TypeScript
Raw Normal View History

2023-04-05 22:29:16 +08:00
import { type AnyFunction } from '@vben/types';
2023-04-06 23:28:37 +08:00
import { nextTick, onActivated, onMounted } from 'vue';
2020-11-18 22:41:59 +08:00
2023-04-05 22:29:16 +08:00
/**
* OnMounted OnActivated
* @param hook
*/
function onMountedOrActivated(hook: AnyFunction) {
2020-11-18 22:41:59 +08:00
let mounted: boolean;
onMounted(() => {
hook();
nextTick(() => {
mounted = true;
});
});
onActivated(() => {
if (mounted) {
hook();
}
});
}
2023-04-05 22:29:16 +08:00
export { onMountedOrActivated };