From 22436ea3412e1b3b3a1ae13677fc85b4b868aad4 Mon Sep 17 00:00:00 2001 From: =?utf8?q?=E4=B8=89=E5=92=B2=E6=99=BA=E5=AD=90=20Kevin=20Deng?= Date: Mon, 29 Jan 2024 22:15:34 +0800 Subject: [PATCH] refactor(compiler-vapor): decoupe insert and non-template --- packages/compiler-vapor/src/generate.ts | 7 +------ .../src/transforms/transformInterpolation.ts | 2 +- packages/compiler-vapor/src/transforms/vIf.ts | 3 +-- 3 files changed, 3 insertions(+), 9 deletions(-) diff --git a/packages/compiler-vapor/src/generate.ts b/packages/compiler-vapor/src/generate.ts index 1f2b04624a..b673e0585a 100644 --- a/packages/compiler-vapor/src/generate.ts +++ b/packages/compiler-vapor/src/generate.ts @@ -318,12 +318,7 @@ function genChildren(children: IRDynamicChildren) { let offset = 0 for (const [index, child] of Object.entries(children)) { const childrenLength = Object.keys(child.children).length - if ( - child.dynamicFlags & DynamicFlag.NON_TEMPLATE || - (child.dynamicFlags & DynamicFlag.INSERT && - child.placeholder === null && - childrenLength === 0) - ) { + if (child.dynamicFlags & DynamicFlag.NON_TEMPLATE) { offset-- continue } diff --git a/packages/compiler-vapor/src/transforms/transformInterpolation.ts b/packages/compiler-vapor/src/transforms/transformInterpolation.ts index 27f6a2b74b..4648cb7883 100644 --- a/packages/compiler-vapor/src/transforms/transformInterpolation.ts +++ b/packages/compiler-vapor/src/transforms/transformInterpolation.ts @@ -27,7 +27,7 @@ export const transformInterpolation: NodeTransform = (node, ctx) => { ) } else { const id = ctx.reference() - ctx.dynamic.dynamicFlags |= DynamicFlag.INSERT + ctx.dynamic.dynamicFlags |= DynamicFlag.INSERT | DynamicFlag.NON_TEMPLATE ctx.registerOperation({ type: IRNodeTypes.CREATE_TEXT_NODE, loc: node.loc, diff --git a/packages/compiler-vapor/src/transforms/vIf.ts b/packages/compiler-vapor/src/transforms/vIf.ts index 70e4523154..b06086b1cd 100644 --- a/packages/compiler-vapor/src/transforms/vIf.ts +++ b/packages/compiler-vapor/src/transforms/vIf.ts @@ -42,6 +42,7 @@ export function processIf( dir.exp = createSimpleExpression(`true`, false, loc) } + context.dynamic.dynamicFlags |= DynamicFlag.NON_TEMPLATE if (dir.name === 'if') { const id = context.reference() context.dynamic.dynamicFlags |= DynamicFlag.INSERT @@ -58,8 +59,6 @@ export function processIf( }) } } else { - context.dynamic.dynamicFlags |= DynamicFlag.NON_TEMPLATE - // check the adjacent v-if const parent = context.parent! const siblings = parent.node.children -- 2.47.3