Просмотр исходного кода

perf(runtime-vapor): tree-shake slot fallback from non-slot bundles

daiwei 3 дней назад
Родитель
Сommit
84626e965d
1 измененных файлов с 8 добавлено и 5 удалено
  1. 8 5
      packages/runtime-vapor/src/block.ts

+ 8 - 5
packages/runtime-vapor/src/block.ts

@@ -17,7 +17,6 @@ import {
 } from '@vue/runtime-dom'
 import {
   type DynamicFragment,
-  SlotFragment,
   type VaporFragment,
   isFragment,
 } from './fragment'
@@ -79,11 +78,15 @@ export function isValidBlock(block: Block | null | undefined): boolean {
     return block.length > 0 && block.some(isValidBlock)
   } else if (block.validityPending) {
     return true
-  } else if (block instanceof SlotFragment) {
-    return isValidBlock(block.getEffectiveOutput())
   } else {
-    // fragment
-    return isValidBlock(block.nodes)
+    const getEffectiveOutput = (
+      block as VaporFragment & {
+        getEffectiveOutput?: () => Block
+      }
+    ).getEffectiveOutput
+    return isValidBlock(
+      getEffectiveOutput ? getEffectiveOutput.call(block) : block.nodes,
+    )
   }
 }