فهرست منبع

wip: refactor

daiwei 1 سال پیش
والد
کامیت
4de819c267
2فایلهای تغییر یافته به همراه10 افزوده شده و 9 حذف شده
  1. 3 8
      packages/runtime-vapor/src/component.ts
  2. 7 1
      packages/runtime-vapor/src/components/Teleport.ts

+ 3 - 8
packages/runtime-vapor/src/component.ts

@@ -60,7 +60,7 @@ import {
 import { hmrReload, hmrRerender } from './hmr'
 import { isHydrating, locateHydrationNode } from './dom/hydration'
 import { insertionAnchor, insertionParent } from './insertionState'
-import type { VaporTeleportImpl } from './components/Teleport'
+import { isVaporTeleport } from './components/Teleport'
 
 export { currentInstance } from '@vue/runtime-dom'
 
@@ -93,8 +93,6 @@ export interface ObjectVaporComponent
 
   name?: string
   vapor?: boolean
-
-  __isTeleport?: boolean
 }
 
 interface SharedInternalOptions {
@@ -161,11 +159,8 @@ export function createComponent(
   }
 
   // teleport
-  if (component.__isTeleport) {
-    const frag = (component as typeof VaporTeleportImpl).process(
-      rawProps!,
-      rawSlots!,
-    )
+  if (isVaporTeleport(component)) {
+    const frag = component.process(rawProps!, rawSlots!)
     if (!isHydrating && _insertionParent) {
       insert(frag, _insertionParent, _insertionAnchor)
     } else {

+ 7 - 1
packages/runtime-vapor/src/components/Teleport.ts

@@ -85,7 +85,7 @@ export const VaporTeleportImpl = {
   },
 }
 
-class TeleportFragment extends VaporFragment {
+export class TeleportFragment extends VaporFragment {
   anchor: Node
 
   private targetStart?: Node
@@ -242,6 +242,12 @@ export const VaporTeleport = VaporTeleportImpl as unknown as {
   }
 }
 
+export function isVaporTeleport(
+  value: unknown,
+): value is typeof VaporTeleportImpl {
+  return value === VaporTeleportImpl
+}
+
 /**
  * dev only
  * during root component HMR reload, since the old component will be unmounted