From 8ccfce5ec745b0d794870aa4d7702a67a1e1cb76 Mon Sep 17 00:00:00 2001 From: Doctor Wu Date: Mon, 3 Jun 2024 22:34:47 +0800 Subject: [PATCH] refactor(compiler/runtime-vapor): remove unnecessary slot key (#225) --- .../transforms/__snapshots__/vSlot.spec.ts.snap | 9 +++------ .../__tests__/transforms/vSlot.spec.ts | 6 +----- packages/compiler-vapor/src/generators/component.ts | 3 +-- packages/compiler-vapor/src/ir.ts | 1 - packages/compiler-vapor/src/transforms/vSlot.ts | 3 --- packages/runtime-vapor/src/componentSlots.ts | 13 +------------ 6 files changed, 6 insertions(+), 29 deletions(-) diff --git a/packages/compiler-vapor/__tests__/transforms/__snapshots__/vSlot.spec.ts.snap b/packages/compiler-vapor/__tests__/transforms/__snapshots__/vSlot.spec.ts.snap index 65e02e0bf..8ac1e71f6 100644 --- a/packages/compiler-vapor/__tests__/transforms/__snapshots__/vSlot.spec.ts.snap +++ b/packages/compiler-vapor/__tests__/transforms/__snapshots__/vSlot.spec.ts.snap @@ -65,8 +65,7 @@ export function render(_ctx) { fn: () => { const n0 = t0() return n0 - }, - key: "0" + } } : _ctx.anotherCondition ? { @@ -74,16 +73,14 @@ export function render(_ctx) { fn: _withDestructure(({ foo, bar }) => [foo, bar], (_ctx0) => { const n2 = t1() return n2 - }), - key: "1" + }) } : { name: "condition", fn: () => { const n4 = t2() return n4 - }, - key: "2" + } })], true) return n6 }" diff --git a/packages/compiler-vapor/__tests__/transforms/vSlot.spec.ts b/packages/compiler-vapor/__tests__/transforms/vSlot.spec.ts index d6a021d31..966ecfcbc 100644 --- a/packages/compiler-vapor/__tests__/transforms/vSlot.spec.ts +++ b/packages/compiler-vapor/__tests__/transforms/vSlot.spec.ts @@ -290,7 +290,6 @@ describe('compiler: transform slot', () => { loop: { source: { content: 'list' }, value: { content: 'item' }, - key: undefined, index: undefined, }, }, @@ -323,7 +322,6 @@ describe('compiler: transform slot', () => { loop: { source: { content: 'list' }, value: undefined, - key: undefined, index: { type: NodeTypes.SIMPLE_EXPRESSION, }, @@ -359,16 +357,14 @@ describe('compiler: transform slot', () => { condition: { content: 'condition' }, positive: { slotType: DynamicSlotType.BASIC, - key: 0, }, negative: { slotType: DynamicSlotType.CONDITIONAL, condition: { content: 'anotherCondition' }, positive: { slotType: DynamicSlotType.BASIC, - key: 1, }, - negative: { slotType: DynamicSlotType.BASIC, key: 2 }, + negative: { slotType: DynamicSlotType.BASIC }, }, }, ], diff --git a/packages/compiler-vapor/src/generators/component.ts b/packages/compiler-vapor/src/generators/component.ts index 041c6adb6..b5773aa8d 100644 --- a/packages/compiler-vapor/src/generators/component.ts +++ b/packages/compiler-vapor/src/generators/component.ts @@ -199,12 +199,11 @@ function genBasicDynamicSlot( slot: ComponentBasicDynamicSlot, context: CodegenContext, ): CodeFragment[] { - const { name, fn, key } = slot + const { name, fn } = slot return genMulti( DELIMITERS_OBJECT_NEWLINE, ['name: ', ...genExpression(name, context)], ['fn: ', ...genSlotBlockWithProps(fn, context)], - ...(key !== undefined ? [`key: "${key}"`] : []), ) } diff --git a/packages/compiler-vapor/src/ir.ts b/packages/compiler-vapor/src/ir.ts index 0cbe6e772..b55538b74 100644 --- a/packages/compiler-vapor/src/ir.ts +++ b/packages/compiler-vapor/src/ir.ts @@ -222,7 +222,6 @@ export interface ComponentBasicDynamicSlot { slotType: DynamicSlotType.BASIC name: SimpleExpressionNode fn: ComponentSlotBlockIRNode - key?: number } export interface ComponentLoopDynamicSlot { diff --git a/packages/compiler-vapor/src/transforms/vSlot.ts b/packages/compiler-vapor/src/transforms/vSlot.ts index 7af6d4b37..6a8e18eb6 100644 --- a/packages/compiler-vapor/src/transforms/vSlot.ts +++ b/packages/compiler-vapor/src/transforms/vSlot.ts @@ -135,7 +135,6 @@ export const transformVSlot: NodeTransform = (node, context) => { slotType: DynamicSlotType.BASIC, name: arg!, fn: block, - key: 0, }, }) } else if (vElse) { @@ -157,14 +156,12 @@ export const transformVSlot: NodeTransform = (node, context) => { slotType: DynamicSlotType.BASIC, name: arg!, fn: block, - key: ifNode.positive.key! + 1, }, } : { slotType: DynamicSlotType.BASIC, name: arg!, fn: block, - key: ifNode.positive.key! + 1, } ifNode.negative = negative } else { diff --git a/packages/runtime-vapor/src/componentSlots.ts b/packages/runtime-vapor/src/componentSlots.ts index 943f7bbf1..dfb51e319 100644 --- a/packages/runtime-vapor/src/componentSlots.ts +++ b/packages/runtime-vapor/src/componentSlots.ts @@ -30,7 +30,6 @@ export type Slots = Readonly export interface DynamicSlot { name: string fn: Slot - key?: string } type DynamicSlotFn = () => DynamicSlot | DynamicSlot[] @@ -72,17 +71,7 @@ export function initSlots( } } else if (dynamicSlot) { // conditional single slot generated by