]> git.ipfire.org Git - thirdparty/vuejs/core.git/commitdiff
chore: notes
authorEvan You <evan@vuejs.org>
Wed, 4 Dec 2024 07:24:52 +0000 (15:24 +0800)
committerEvan You <evan@vuejs.org>
Wed, 4 Dec 2024 07:24:52 +0000 (15:24 +0800)
packages/runtime-vapor/src/block.ts
packages/runtime-vapor/src/componentMetadata.ts
packages/runtime-vapor/src/dom/element.ts

index fb82eb68c841be2b7d5dbb08cbda8f3f1df39ab3..44fee9a55632e0be55dd53326fb376f43a92a000 100644 (file)
@@ -24,6 +24,7 @@ export function isBlock(val: NonNullable<unknown>): val is Block {
 }
 
 /*! #__NO_SIDE_EFFECTS__ */
+// TODO this should be optimized away
 export function normalizeBlock(block: Block): Node[] {
   const nodes: Node[] = []
   if (block instanceof Node) {
index ab2ad0bc65031c2c9c2d8df82e4cd22a7771ca1d..557b6ff4f3d01af9ea3e1477b5f458b00e2e6d9e 100644 (file)
@@ -1,6 +1,5 @@
 import { remove } from '@vue/shared'
 import type { DelegatedHandler } from './dom/event'
-import type { Data } from '@vue/runtime-shared'
 
 export enum MetadataKind {
   prop,
@@ -8,7 +7,7 @@ export enum MetadataKind {
 }
 
 export type ComponentMetadata = [
-  props: Data,
+  props: Record<string, any>,
   events: Record<string, DelegatedHandler[]>,
 ]
 
index 6c8f795b36ba81030c3bf35236d85634e1a99d38..1df04b8a7406273180a91ddbdd6d7a3502da131b 100644 (file)
@@ -4,17 +4,6 @@ import { setText } from './prop'
 import { type Block, normalizeBlock } from '../block'
 import { isVaporComponent } from '../component'
 
-// export function insert(
-//   block: Block,
-//   parent: ParentNode,
-//   anchor: Node | null = null,
-// ): void {
-//   const nodes = normalizeBlock(block)
-//   for (let i = 0; i < nodes.length; i++) {
-//     parent.insertBefore(nodes[i], anchor)
-//   }
-// }
-
 export function insert(
   block: Block,
   parent: ParentNode,
@@ -28,15 +17,18 @@ export function insert(
     for (let i = 0; i < block.length; i++) {
       insert(block[i], parent, anchor)
     }
-  } else if (block) {
+  } else {
+    // fragment
     insert(block.nodes, parent, anchor)
   }
 }
 
 export function prepend(parent: ParentNode, ...blocks: Block[]): void {
-  parent.prepend(...normalizeBlock(blocks))
+  const anchor = parent.firstChild
+  for (const b of blocks) insert(b, parent, anchor)
 }
 
+// TODO optimize
 export function remove(block: Block, parent: ParentNode): void {
   const nodes = normalizeBlock(block)
   for (let i = 0; i < nodes.length; i++) {
@@ -44,6 +36,7 @@ export function remove(block: Block, parent: ParentNode): void {
   }
 }
 
+// TODO optimize
 export function createTextNode(values?: any[] | (() => any[])): Text {
   // eslint-disable-next-line no-restricted-globals
   const node = document.createTextNode('')