feat(runtime): 实现类名规范化功能

- 添加 normalizeClass 函数用于处理类名数组和对象
- 在 createVNode 中集成类名规范化逻辑
- 导出 normalizeClass 供外部使用
- 创建测试 HTML 示例验证类名功能
- 处理字符串、数组和对象类型的类名输入
This commit is contained in:
dj
2026-02-27 21:00:53 +08:00
parent abf8112359
commit 026f4a5958
4 changed files with 61 additions and 0 deletions

View File

@@ -3,6 +3,7 @@ import {
isFunction,
isObject,
isString,
normalizeClass,
ShapeFlags
} from '@vue/shared'
@@ -21,6 +22,13 @@ export function isVNode(value): value is VNode {
return value ? value.__v_isVNode === true : false
}
export function createVNode(type, props, children): VNode {
if (props) {
let { class: klass, style } = props
if (klass && !isString(klass)) {
props.class = normalizeClass(klass)
}
}
const shapeFlag = isString(type)
? ShapeFlags.ELEMENT
: isObject(type)