From 75da55722673fa1160e30adeaf77a29c5d08a029 Mon Sep 17 00:00:00 2001 From: daiwei Date: Wed, 26 Nov 2025 16:51:40 +0800 Subject: [PATCH] chore(vShow): simplify fragment handling logic --- packages/runtime-vapor/src/directives/vShow.ts | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/packages/runtime-vapor/src/directives/vShow.ts b/packages/runtime-vapor/src/directives/vShow.ts index 39d4cb55d7..1d522b00b1 100644 --- a/packages/runtime-vapor/src/directives/vShow.ts +++ b/packages/runtime-vapor/src/directives/vShow.ts @@ -11,7 +11,7 @@ import { isVaporComponent } from '../component' import type { Block, TransitionBlock } from '../block' import { isArray } from '@vue/shared' import { isHydrating, logMismatchError } from '../dom/hydration' -import { DynamicFragment, VaporFragment } from '../fragment' +import { DynamicFragment, VaporFragment, isFragment } from '../fragment' export function applyVShow(target: Block, source: () => any): void { if (isVaporComponent(target)) { @@ -47,14 +47,10 @@ function setDisplay(target: Block, value: unknown): void { if (target.length === 0) return if (target.length === 1) return setDisplay(target[0], value) } - if (target instanceof DynamicFragment) { - return setDisplay(target.nodes, value) - } - if (target instanceof VaporFragment && target.insert) { + if (isFragment(target)) { return setDisplay(target.nodes, value) } - const { $transition } = target as TransitionBlock if (target instanceof Element) { const el = target as VShowElement if (!(vShowOriginalDisplay in el)) { @@ -62,6 +58,7 @@ function setDisplay(target: Block, value: unknown): void { el.style.display === 'none' ? '' : el.style.display } + const { $transition } = target as TransitionBlock if ($transition) { if (value) { $transition.beforeEnter(target) -- 2.47.3