feat(runtime-core): support variadic children in h for simple JSX compat

ref: #1917
This commit is contained in:
Evan You
2020-08-21 21:54:33 -04:00
parent 6602d6dbff
commit 54d06ec495
2 changed files with 21 additions and 2 deletions

View File

@@ -129,7 +129,8 @@ export function h<P>(
// Actual implementation
export function h(type: any, propsOrChildren?: any, children?: any): VNode {
if (arguments.length === 2) {
const l = arguments.length
if (l === 2) {
if (isObject(propsOrChildren) && !isArray(propsOrChildren)) {
// single vnode without props
if (isVNode(propsOrChildren)) {
@@ -142,7 +143,9 @@ export function h(type: any, propsOrChildren?: any, children?: any): VNode {
return createVNode(type, null, propsOrChildren)
}
} else {
if (isVNode(children)) {
if (l > 3) {
children = Array.prototype.slice.call(arguments, 2)
} else if (l === 3 && isVNode(children)) {
children = [children]
}
return createVNode(type, propsOrChildren, children)