mirror of
https://github.com/robonen/tools.git
synced 2026-03-20 10:54:44 +00:00
28 lines
859 B
TypeScript
28 lines
859 B
TypeScript
import { onMounted, readonly, ref, type ComponentInternalInstance } from 'vue';
|
|
import { getLifeCycleTarger } from '@/utils';
|
|
|
|
/**
|
|
* @name useMounted
|
|
* @category Lifecycle
|
|
* @description Returns a ref that tracks the mounted state of the component (doesn't track the unmounted state)
|
|
*
|
|
* @param {ComponentInternalInstance} [instance] The component instance to track the mounted state for
|
|
* @returns {Readonly<Ref<boolean>>} The mounted state of the component
|
|
*
|
|
* @example
|
|
* const isMounted = useMounted();
|
|
*
|
|
* @example
|
|
* const isMounted = useMounted(getCurrentInstance());
|
|
*
|
|
* @since 0.0.1
|
|
*/
|
|
export function useMounted(instance?: ComponentInternalInstance) {
|
|
const isMounted = ref(false);
|
|
const targetInstance = getLifeCycleTarger(instance);
|
|
|
|
onMounted(() => isMounted.value = true, targetInstance);
|
|
|
|
return readonly(isMounted);
|
|
}
|