From 1031e8de08b735059217b1ad0057f62565c99c4f Mon Sep 17 00:00:00 2001 From: edison Date: Mon, 25 Aug 2025 14:52:50 +0800 Subject: [PATCH] fix(runtime-dom): add name to vShow for prop mismatch check (#13806) close #13805 re-fix #13744 revert #13777 The implementation in #13777 requires users to configure __FEATURE_PROD_HYDRATION_MISMATCH_DETAILS__, otherwise errors like #13805 will occur. --- packages/runtime-dom/src/directives/vShow.ts | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/packages/runtime-dom/src/directives/vShow.ts b/packages/runtime-dom/src/directives/vShow.ts index 2fa934efe5..393d2de11d 100644 --- a/packages/runtime-dom/src/directives/vShow.ts +++ b/packages/runtime-dom/src/directives/vShow.ts @@ -9,7 +9,9 @@ export interface VShowElement extends HTMLElement { [vShowHidden]: boolean } -export const vShow: ObjectDirective & { name?: 'show' } = { +export const vShow: ObjectDirective & { name: 'show' } = { + // used for prop mismatch check during hydration + name: 'show', beforeMount(el, { value }, { transition }) { el[vShowOriginalDisplay] = el.style.display === 'none' ? '' : el.style.display @@ -45,10 +47,6 @@ export const vShow: ObjectDirective & { name?: 'show' } = { }, } -if (__DEV__ || __FEATURE_PROD_HYDRATION_MISMATCH_DETAILS__) { - vShow.name = 'show' -} - function setDisplay(el: VShowElement, value: unknown): void { el.style.display = value ? el[vShowOriginalDisplay] : 'none' el[vShowHidden] = !value -- 2.47.3