From: 三咲智子 Kevin Deng Date: Mon, 29 Jan 2024 14:15:34 +0000 (+0800) Subject: refactor(compiler-vapor): decoupe insert and non-template X-Git-Tag: v3.6.0-alpha.1~16^2~640 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=22436ea3412e1b3b3a1ae13677fc85b4b868aad4;p=thirdparty%2Fvuejs%2Fcore.git refactor(compiler-vapor): decoupe insert and non-template --- 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