From 5b13483329dc83e83581ea1d9932e65afedc6600 Mon Sep 17 00:00:00 2001 From: Jovi De Croock Date: Sat, 5 Sep 2026 08:12:16 +0200 Subject: [PATCH] perf: allow JSX consumers to drop createElement --- src/create-portal.js | 4 ++-- src/render.js | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/create-portal.js b/src/create-portal.js index 2b97d64a33..93c3a3c2c5 100644 --- a/src/create-portal.js +++ b/src/create-portal.js @@ -1,4 +1,4 @@ -import { createElement } from './create-element'; +import { createVNode } from './create-element'; /** * Portal component. A unique type is used instead of Fragment so that a @@ -16,5 +16,5 @@ function Portal(props) { * @param {import('./internal').PreactElement} container The DOM node to continue rendering in to */ export function createPortal(vnode, container) { - return createElement(Portal, { _parentDom: container }, vnode); + return createVNode(Portal, { _parentDom: container, children: vnode }); } diff --git a/src/render.js b/src/render.js index 68f960e9ed..047abe8451 100644 --- a/src/render.js +++ b/src/render.js @@ -1,6 +1,6 @@ import { EMPTY_OBJ, MODE_HYDRATE, NULL } from './constants'; import { commitRoot, diff } from './diff/index'; -import { createElement, Fragment } from './create-element'; +import { createVNode, Fragment } from './create-element'; import options from './options'; import { slice } from './util'; @@ -28,7 +28,7 @@ export function render(vnode, parentDom) { // means that we are mounting a new tree for the first time. let oldVNode = isHydrating ? NULL : parentDom._children; - parentDom._children = createElement(Fragment, NULL, [vnode]); + parentDom._children = createVNode(Fragment, { children: [vnode] }); // List of effects that need to be called after diffing. let commitQueue = [],