From bfb1d69bb4a5457429e37a92ac20112cb9a8d557 Mon Sep 17 00:00:00 2001 From: dopamine Date: Wed, 16 Apr 2025 17:05:27 +0800 Subject: [PATCH 1/2] fix(runtime-core): stop tracking deps in setRef during unmount --- packages/runtime-core/src/renderer.ts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/packages/runtime-core/src/renderer.ts b/packages/runtime-core/src/renderer.ts index 05c4ac345eb..34405d89d1d 100644 --- a/packages/runtime-core/src/renderer.ts +++ b/packages/runtime-core/src/renderer.ts @@ -483,7 +483,9 @@ function baseCreateRenderer( // set ref if (ref != null && parentComponent) { + pauseTracking() setRef(ref, n1 && n1.ref, parentSuspense, n2 || n1, !n2) + resetTracking() } } From 4549e03e5687b1841ea633b340e04f4e18c4296d Mon Sep 17 00:00:00 2001 From: dopamine Date: Wed, 16 Apr 2025 22:06:50 +0800 Subject: [PATCH 2/2] fix --- packages/runtime-core/src/renderer.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/runtime-core/src/renderer.ts b/packages/runtime-core/src/renderer.ts index 34405d89d1d..02b74e809a7 100644 --- a/packages/runtime-core/src/renderer.ts +++ b/packages/runtime-core/src/renderer.ts @@ -483,9 +483,7 @@ function baseCreateRenderer( // set ref if (ref != null && parentComponent) { - pauseTracking() setRef(ref, n1 && n1.ref, parentSuspense, n2 || n1, !n2) - resetTracking() } } @@ -2100,7 +2098,9 @@ function baseCreateRenderer( // unset ref if (ref != null) { + pauseTracking() setRef(ref, null, parentSuspense, vnode, true) + resetTracking() } // #6593 should clean memo cache when unmount