Преглед изворни кода

fix(ssr): should de-optimize on vnode with PatchFlags.BAIL (#4818)

fix #4679
fix #5771
edison пре 4 година
родитељ
комит
cd659fc86f

+ 6 - 1
packages/runtime-core/src/hydration.ts

@@ -97,10 +97,15 @@ export function createHydrationFunctions(
         isFragmentStart
       )
 
-    const { type, ref, shapeFlag } = vnode
+    const { type, ref, shapeFlag, patchFlag } = vnode
     const domType = node.nodeType
     vnode.el = node
 
+    if (patchFlag === PatchFlags.BAIL) {
+      optimized = false
+      vnode.dynamicChildren = null
+    }
+
     let nextNode: Node | null = null
     switch (type) {
       case Text:

+ 2 - 2
packages/runtime-dom/src/apiCustomElement.ts

@@ -122,13 +122,13 @@ export function defineCustomElement(options: {
 
 export function defineCustomElement(
   options: any,
-  hydate?: RootHydrateFunction
+  hydrate?: RootHydrateFunction
 ): VueElementConstructor {
   const Comp = defineComponent(options as any)
   class VueCustomElement extends VueElement {
     static def = Comp
     constructor(initialProps?: Record<string, any>) {
-      super(Comp, initialProps, hydate)
+      super(Comp, initialProps, hydrate)
     }
   }