wip: staticStyle and staticClass
This commit is contained in:
parent
62bfdae043
commit
24bab94a72
@ -60,6 +60,35 @@ describe('compat: render function', () => {
|
|||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
|
test('staticClass + class', () => {
|
||||||
|
expect(
|
||||||
|
h('div', {
|
||||||
|
class: { foo: true },
|
||||||
|
staticClass: 'bar'
|
||||||
|
})
|
||||||
|
).toMatchObject({
|
||||||
|
props: {
|
||||||
|
class: 'bar foo'
|
||||||
|
}
|
||||||
|
})
|
||||||
|
})
|
||||||
|
|
||||||
|
test('staticStyle + style', () => {
|
||||||
|
expect(
|
||||||
|
h('div', {
|
||||||
|
style: { color: 'red' },
|
||||||
|
staticStyle: { fontSize: '14px' }
|
||||||
|
})
|
||||||
|
).toMatchObject({
|
||||||
|
props: {
|
||||||
|
style: {
|
||||||
|
color: 'red',
|
||||||
|
fontSize: '14px'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
})
|
||||||
|
|
||||||
test('on / nativeOn', () => {
|
test('on / nativeOn', () => {
|
||||||
const fn = () => {}
|
const fn = () => {}
|
||||||
expect(
|
expect(
|
||||||
|
@ -2,6 +2,8 @@ import {
|
|||||||
extend,
|
extend,
|
||||||
isArray,
|
isArray,
|
||||||
isObject,
|
isObject,
|
||||||
|
normalizeClass,
|
||||||
|
normalizeStyle,
|
||||||
ShapeFlags,
|
ShapeFlags,
|
||||||
toHandlerKey
|
toHandlerKey
|
||||||
} from '@vue/shared'
|
} from '@vue/shared'
|
||||||
@ -141,7 +143,13 @@ export function compatH(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function convertLegacyProps(legacyProps?: LegacyVNodeProps): Data & VNodeProps {
|
function convertLegacyProps(
|
||||||
|
legacyProps?: LegacyVNodeProps
|
||||||
|
): Data & VNodeProps | null {
|
||||||
|
if (!legacyProps) {
|
||||||
|
return null
|
||||||
|
}
|
||||||
|
|
||||||
const converted: Data & VNodeProps = {}
|
const converted: Data & VNodeProps = {}
|
||||||
|
|
||||||
for (const key in legacyProps) {
|
for (const key in legacyProps) {
|
||||||
@ -159,11 +167,22 @@ function convertLegacyProps(legacyProps?: LegacyVNodeProps): Data & VNodeProps {
|
|||||||
: incoming
|
: incoming
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else if (
|
||||||
|
key !== 'refInFor' &&
|
||||||
|
key !== 'staticStyle' &&
|
||||||
|
key !== 'staticClass'
|
||||||
|
) {
|
||||||
converted[key] = legacyProps[key as keyof LegacyVNodeProps]
|
converted[key] = legacyProps[key as keyof LegacyVNodeProps]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (legacyProps.staticClass) {
|
||||||
|
converted.class = normalizeClass([legacyProps.staticClass, converted.class])
|
||||||
|
}
|
||||||
|
if (legacyProps.staticStyle) {
|
||||||
|
converted.style = normalizeStyle([legacyProps.staticStyle, converted.style])
|
||||||
|
}
|
||||||
|
|
||||||
return converted
|
return converted
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user