mirror of https://github.com/vuejs/core.git
fix(compiler-core): ignore whitespace when matching adjacent v-if (#12321)
close #9173
This commit is contained in:
parent
f05a8d613b
commit
10ebcef8c8
|
@ -246,6 +246,28 @@ return function render(_ctx, _cache) {
|
|||
}"
|
||||
`;
|
||||
|
||||
exports[`compiler: transform component slots > with whitespace: 'preserve' > named slot with v-if + v-else 1`] = `
|
||||
"const { resolveComponent: _resolveComponent, withCtx: _withCtx, createSlots: _createSlots, openBlock: _openBlock, createBlock: _createBlock } = Vue
|
||||
|
||||
return function render(_ctx, _cache) {
|
||||
const _component_Comp = _resolveComponent("Comp")
|
||||
|
||||
return (_openBlock(), _createBlock(_component_Comp, null, _createSlots({ _: 2 /* DYNAMIC */ }, [
|
||||
ok
|
||||
? {
|
||||
name: "one",
|
||||
fn: _withCtx(() => ["foo"]),
|
||||
key: "0"
|
||||
}
|
||||
: {
|
||||
name: "two",
|
||||
fn: _withCtx(() => ["baz"]),
|
||||
key: "1"
|
||||
}
|
||||
]), 1024 /* DYNAMIC_SLOTS */))
|
||||
}"
|
||||
`;
|
||||
|
||||
exports[`compiler: transform component slots > with whitespace: 'preserve' > should not generate whitespace only default slot 1`] = `
|
||||
"const { resolveComponent: _resolveComponent, withCtx: _withCtx, openBlock: _openBlock, createBlock: _createBlock } = Vue
|
||||
|
||||
|
|
|
@ -988,5 +988,19 @@ describe('compiler: transform component slots', () => {
|
|||
|
||||
expect(generate(root, { prefixIdentifiers: true }).code).toMatchSnapshot()
|
||||
})
|
||||
|
||||
test('named slot with v-if + v-else', () => {
|
||||
const source = `
|
||||
<Comp>
|
||||
<template #one v-if="ok">foo</template>
|
||||
<template #two v-else>baz</template>
|
||||
</Comp>
|
||||
`
|
||||
const { root } = parseWithSlots(source, {
|
||||
whitespace: 'preserve',
|
||||
})
|
||||
|
||||
expect(generate(root, { prefixIdentifiers: true }).code).toMatchSnapshot()
|
||||
})
|
||||
})
|
||||
})
|
||||
|
|
|
@ -222,7 +222,7 @@ export function buildSlots(
|
|||
let prev
|
||||
while (j--) {
|
||||
prev = children[j]
|
||||
if (prev.type !== NodeTypes.COMMENT) {
|
||||
if (prev.type !== NodeTypes.COMMENT && isNonWhitespaceContent(prev)) {
|
||||
break
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue