Răsfoiți Sursa

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.
edison 8 luni în urmă
părinte
comite
1031e8de08
1 a modificat fișierele cu 3 adăugiri și 5 ștergeri
  1. 3 5
      packages/runtime-dom/src/directives/vShow.ts

+ 3 - 5
packages/runtime-dom/src/directives/vShow.ts

@@ -9,7 +9,9 @@ export interface VShowElement extends HTMLElement {
   [vShowHidden]: boolean
 }
 
-export const vShow: ObjectDirective<VShowElement> & { name?: 'show' } = {
+export const vShow: ObjectDirective<VShowElement> & { 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<VShowElement> & { 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