fix(transform): transform should still apply even when node is removed
This commit is contained in:
parent
3a177a18d2
commit
9c01e0bf0d
@ -287,16 +287,20 @@ function genIfBranch(
|
||||
context: CodegenContext
|
||||
) {
|
||||
if (condition) {
|
||||
const { push, indent, deindent, newline } = context
|
||||
// v-if or v-else-if
|
||||
context.push(`(${condition.content})`, condition)
|
||||
context.push(`?`)
|
||||
push(`(${condition.content})`, condition)
|
||||
indent()
|
||||
push(`? `)
|
||||
genChildren(children, context)
|
||||
context.push(`:`)
|
||||
newline()
|
||||
push(`: `)
|
||||
if (nextIndex < branches.length) {
|
||||
genIfBranch(branches[nextIndex], branches, nextIndex + 1, context)
|
||||
} else {
|
||||
context.push(`null`)
|
||||
}
|
||||
deindent()
|
||||
} else {
|
||||
// v-else
|
||||
__DEV__ && assert(nextIndex === branches.length)
|
||||
|
@ -132,12 +132,13 @@ function traverseNode(
|
||||
for (let i = 0; i < nodeTransforms.length; i++) {
|
||||
const plugin = nodeTransforms[i]
|
||||
plugin(node, context)
|
||||
if (!context.currentNode) {
|
||||
return
|
||||
} else {
|
||||
// node may have been replaced
|
||||
node = context.currentNode
|
||||
}
|
||||
// node may have been replaced
|
||||
node = context.currentNode || node
|
||||
}
|
||||
|
||||
if (!context.currentNode) {
|
||||
// node was removed
|
||||
return
|
||||
}
|
||||
|
||||
// further traverse downwards
|
||||
|
Loading…
Reference in New Issue
Block a user