Ben Lin
2025-03-05 af9a261a3728ca35a38aa03e4b4aeababa9ddeac
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
import { type AnyFunction } from '@vben/types';
import { nextTick, onActivated, onMounted } from 'vue';
 
/**
 * 在 OnMounted 或者 OnActivated 时触发
 * @param hook 任何函数(包括异步函数)
 */
function onMountedOrActivated(hook: AnyFunction) {
  let mounted: boolean;
 
  onMounted(() => {
    hook();
    nextTick(() => {
      mounted = true;
    });
  });
 
  onActivated(() => {
    if (mounted) {
      hook();
    }
  });
}
 
export { onMountedOrActivated };