From ae36b1a6642f59a218311c902d82c9c18eb3061d Mon Sep 17 00:00:00 2001 From: =?utf8?q?=E8=BF=9C=E6=96=B9os?= Date: Mon, 27 May 2024 17:07:38 +0800 Subject: [PATCH] refactor(runtime-core): prevent users from manually calling lifecycle hook function (#8731) --- packages/runtime-core/src/apiLifecycle.ts | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/packages/runtime-core/src/apiLifecycle.ts b/packages/runtime-core/src/apiLifecycle.ts index 741d43ec45..cfaf7636e9 100644 --- a/packages/runtime-core/src/apiLifecycle.ts +++ b/packages/runtime-core/src/apiLifecycle.ts @@ -68,10 +68,15 @@ export function injectHook( export const createHook = 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) -- 2.47.2