mirror of https://github.com/vuejs/core.git
Merge 34957eb77d
into 1ef6e6edb7
This commit is contained in:
commit
66c723d2bd
|
@ -322,4 +322,43 @@ describe('attribute fallthrough', () => {
|
|||
expect(el.getAttribute('aria-x')).toBe(parentVal.value)
|
||||
expect(el.getAttribute('aria-y')).toBe(parentVal.value)
|
||||
})
|
||||
|
||||
it('empty string should not be passed to classList.add', async () => {
|
||||
const t0 = template('<div>', true /* root */)
|
||||
const Child = defineVaporComponent({
|
||||
setup() {
|
||||
const n = t0() as Element
|
||||
renderEffect(() => {
|
||||
setClass(n, {
|
||||
foo: false,
|
||||
})
|
||||
})
|
||||
return n
|
||||
},
|
||||
})
|
||||
|
||||
const Parent = defineVaporComponent({
|
||||
setup() {
|
||||
return createComponent(
|
||||
Child,
|
||||
{
|
||||
class: () => ({
|
||||
bar: false,
|
||||
}),
|
||||
},
|
||||
null,
|
||||
true,
|
||||
)
|
||||
},
|
||||
})
|
||||
|
||||
const { host } = define({
|
||||
setup() {
|
||||
return createComponent(Parent)
|
||||
},
|
||||
}).render()
|
||||
|
||||
const el = host.children[0]
|
||||
expect(el.classList.length).toBe(0)
|
||||
})
|
||||
})
|
||||
|
|
|
@ -122,7 +122,9 @@ function setClassIncremental(el: any, value: any): void {
|
|||
const prev = el[cacheKey]
|
||||
if ((value = el[cacheKey] = normalizeClass(value)) !== prev) {
|
||||
const nextList = value.split(/\s+/)
|
||||
el.classList.add(...nextList)
|
||||
if (value) {
|
||||
el.classList.add(...nextList)
|
||||
}
|
||||
if (prev) {
|
||||
for (const cls of prev.split(/\s+/)) {
|
||||
if (!nextList.includes(cls)) el.classList.remove(cls)
|
||||
|
|
Loading…
Reference in New Issue