refactor(compiler-vapor): decoupe insert and non-template

This commit is contained in:
三咲智子 Kevin Deng 2024-01-29 22:15:34 +08:00
parent 79636ddc5b
commit 22436ea341
No known key found for this signature in database
GPG Key ID: 69992F2250DFD93E
3 changed files with 3 additions and 9 deletions

View File

@ -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
}

View File

@ -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,

View File

@ -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