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 };
|