fix: generate v-if fallback comment as block
This commit is contained in:
parent
7b637319a8
commit
ed29af7bea
@ -389,7 +389,7 @@ return function render() {
|
|||||||
? _createBlock(\\"div\\", _hoisted_1, [
|
? _createBlock(\\"div\\", _hoisted_1, [
|
||||||
_hoisted_2
|
_hoisted_2
|
||||||
])
|
])
|
||||||
: _createCommentVNode())
|
: _createCommentVNode(\\"v-if\\", true))
|
||||||
]))
|
]))
|
||||||
}
|
}
|
||||||
}"
|
}"
|
||||||
|
@ -161,7 +161,7 @@ return function render() {
|
|||||||
? _createBlock(_Fragment, { key: 0 }, _renderList(list, (i) => {
|
? _createBlock(_Fragment, { key: 0 }, _renderList(list, (i) => {
|
||||||
return (_openBlock(), _createBlock(\\"div\\"))
|
return (_openBlock(), _createBlock(\\"div\\"))
|
||||||
}), 128 /* UNKEYED_FRAGMENT */)
|
}), 128 /* UNKEYED_FRAGMENT */)
|
||||||
: _createCommentVNode())
|
: _createCommentVNode(\\"v-if\\", true))
|
||||||
}
|
}
|
||||||
}"
|
}"
|
||||||
`;
|
`;
|
||||||
|
@ -9,7 +9,7 @@ return function render() {
|
|||||||
|
|
||||||
return (_openBlock(), ok
|
return (_openBlock(), ok
|
||||||
? _createBlock(\\"div\\", { key: 0 })
|
? _createBlock(\\"div\\", { key: 0 })
|
||||||
: _createCommentVNode())
|
: _createCommentVNode(\\"v-if\\", true))
|
||||||
}
|
}
|
||||||
}"
|
}"
|
||||||
`;
|
`;
|
||||||
@ -27,7 +27,7 @@ return function render() {
|
|||||||
\\"hello\\",
|
\\"hello\\",
|
||||||
_createVNode(\\"p\\")
|
_createVNode(\\"p\\")
|
||||||
])
|
])
|
||||||
: _createCommentVNode())
|
: _createCommentVNode(\\"v-if\\", true))
|
||||||
}
|
}
|
||||||
}"
|
}"
|
||||||
`;
|
`;
|
||||||
@ -41,7 +41,7 @@ return function render() {
|
|||||||
|
|
||||||
return (_openBlock(), ok
|
return (_openBlock(), ok
|
||||||
? _renderSlot($slots, \\"default\\", { key: 0 })
|
? _renderSlot($slots, \\"default\\", { key: 0 })
|
||||||
: _createCommentVNode())
|
: _createCommentVNode(\\"v-if\\", true))
|
||||||
}
|
}
|
||||||
}"
|
}"
|
||||||
`;
|
`;
|
||||||
@ -87,7 +87,7 @@ return function render() {
|
|||||||
? _createBlock(\\"div\\", { key: 0 })
|
? _createBlock(\\"div\\", { key: 0 })
|
||||||
: orNot
|
: orNot
|
||||||
? _createBlock(\\"p\\", { key: 1 })
|
? _createBlock(\\"p\\", { key: 1 })
|
||||||
: _createCommentVNode())
|
: _createCommentVNode(\\"v-if\\", true))
|
||||||
}
|
}
|
||||||
}"
|
}"
|
||||||
`;
|
`;
|
||||||
@ -101,7 +101,7 @@ return function render() {
|
|||||||
|
|
||||||
return (_openBlock(), ok
|
return (_openBlock(), ok
|
||||||
? _renderSlot($slots, \\"default\\", { key: 0 })
|
? _renderSlot($slots, \\"default\\", { key: 0 })
|
||||||
: _createCommentVNode())
|
: _createCommentVNode(\\"v-if\\", true))
|
||||||
}
|
}
|
||||||
}"
|
}"
|
||||||
`;
|
`;
|
||||||
|
@ -152,7 +152,12 @@ function createCodegenNodeForBranch(
|
|||||||
return createConditionalExpression(
|
return createConditionalExpression(
|
||||||
branch.condition,
|
branch.condition,
|
||||||
createChildrenCodegenNode(branch, index, context),
|
createChildrenCodegenNode(branch, index, context),
|
||||||
createCallExpression(context.helper(CREATE_COMMENT))
|
// make sure to pass in asBlock: true so that the comment node call
|
||||||
|
// closes the current block.
|
||||||
|
createCallExpression(context.helper(CREATE_COMMENT), [
|
||||||
|
__DEV__ ? '"v-if"' : '""',
|
||||||
|
'true'
|
||||||
|
])
|
||||||
) as IfConditionalExpression
|
) as IfConditionalExpression
|
||||||
} else {
|
} else {
|
||||||
return createChildrenCodegenNode(branch, index, context) as BlockCodegenNode
|
return createChildrenCodegenNode(branch, index, context) as BlockCodegenNode
|
||||||
|
@ -258,8 +258,15 @@ export function createTextVNode(text: string = ' ', flag: number = 0): VNode {
|
|||||||
return createVNode(Text, null, text, flag)
|
return createVNode(Text, null, text, flag)
|
||||||
}
|
}
|
||||||
|
|
||||||
export function createCommentVNode(text: string = ''): VNode {
|
export function createCommentVNode(
|
||||||
return createVNode(Comment, null, text)
|
text: string = '',
|
||||||
|
// when used as the v-else branch, the comment node must be created as a
|
||||||
|
// block to ensure correct updates.
|
||||||
|
asBlock: boolean = false
|
||||||
|
): VNode {
|
||||||
|
return asBlock
|
||||||
|
? createBlock(Comment, null, text)
|
||||||
|
: createVNode(Comment, null, text)
|
||||||
}
|
}
|
||||||
|
|
||||||
export function normalizeVNode(child: VNodeChild): VNode {
|
export function normalizeVNode(child: VNodeChild): VNode {
|
||||||
|
Loading…
Reference in New Issue
Block a user