UNPKG

preact

Version:

Fast 3kb React alternative with the same modern API. Components & Virtual DOM.

19 lines (17 loc) 609 B
import { extend } from './util'; import { h } from './h'; /** * Clones the given VNode, optionally adding attributes/props and replacing its * children. * @param {import('./vnode').VNode} vnode The virtual DOM element to clone * @param {object} props Attributes/props to add when cloning * @param {Array<import('./vnode').VNode>} [rest] Any additional arguments will be used as replacement * children. */ export function cloneElement(vnode, props) { return h( vnode.nodeName, extend(extend({}, vnode.attributes), props), arguments.length>2 ? [].slice.call(arguments, 2) : vnode.children ); }