mirror of https://github.com/vuejs/core.git
refactor(runtime-core): prevent users from manually calling lifecycle hook function (#8731)
This commit is contained in:
parent
a498b4ef15
commit
ae36b1a664
|
@ -68,10 +68,15 @@ export function injectHook(
|
|||
|
||||
export const createHook =
|
||||
<T extends Function = () => any>(lifecycle: LifecycleHooks) =>
|
||||
(hook: T, target: ComponentInternalInstance | null = currentInstance) =>
|
||||
(hook: T, target: ComponentInternalInstance | null = currentInstance) => {
|
||||
// post-create lifecycle registrations are noops during SSR (except for serverPrefetch)
|
||||
(!isInSSRComponentSetup || lifecycle === LifecycleHooks.SERVER_PREFETCH) &&
|
||||
injectHook(lifecycle, (...args: unknown[]) => hook(...args), target)
|
||||
if (
|
||||
!isInSSRComponentSetup ||
|
||||
lifecycle === LifecycleHooks.SERVER_PREFETCH
|
||||
) {
|
||||
injectHook(lifecycle, (...args: unknown[]) => hook(...args), target)
|
||||
}
|
||||
}
|
||||
|
||||
export const onBeforeMount = createHook(LifecycleHooks.BEFORE_MOUNT)
|
||||
export const onMounted = createHook(LifecycleHooks.MOUNTED)
|
||||
|
|
Loading…
Reference in New Issue