diff --git a/packages/runtime-core/src/components/Suspense.ts b/packages/runtime-core/src/components/Suspense.ts index 5914e891cb2..7c3c75a6fe7 100644 --- a/packages/runtime-core/src/components/Suspense.ts +++ b/packages/runtime-core/src/components/Suspense.ts @@ -438,6 +438,7 @@ export interface SuspenseBoundary { registerDep( instance: ComponentInternalInstance, setupRenderEffect: SetupRenderEffectFn, + optimized: boolean, ): void unmount(parentSuspense: SuspenseBoundary | null, doRemove?: boolean): void } @@ -679,7 +680,7 @@ function createSuspenseBoundary( return suspense.activeBranch && next(suspense.activeBranch) }, - registerDep(instance, setupRenderEffect) { + registerDep(instance, setupRenderEffect, optimized) { const isInPendingSuspense = !!suspense.pendingBranch if (isInPendingSuspense) { suspense.deps++ diff --git a/packages/runtime-core/src/renderer.ts b/packages/runtime-core/src/renderer.ts index c7dfbf45dd2..542341b13e8 100644 --- a/packages/runtime-core/src/renderer.ts +++ b/packages/runtime-core/src/renderer.ts @@ -1238,7 +1238,8 @@ function baseCreateRenderer( // setup() is async. This component relies on async logic to be resolved // before proceeding if (__FEATURE_SUSPENSE__ && instance.asyncDep) { - parentSuspense && parentSuspense.registerDep(instance, setupRenderEffect) + parentSuspense && + parentSuspense.registerDep(instance, setupRenderEffect, optimized) // Give it a placeholder if this is not hydration // TODO handle self-defined fallback