]> git.ipfire.org Git - thirdparty/vuejs/core.git/commitdiff
refactor: add createElement helper
authordaiwei <daiwei521@126.com>
Mon, 17 Mar 2025 03:40:10 +0000 (11:40 +0800)
committerdaiwei <daiwei521@126.com>
Mon, 17 Mar 2025 03:40:10 +0000 (11:40 +0800)
packages/runtime-vapor/src/component.ts
packages/runtime-vapor/src/components/TransitionGroup.ts
packages/runtime-vapor/src/dom/node.ts
packages/runtime-vapor/src/dom/template.ts

index ae0f2549797381313e7a37fc2c30c4d538f97cc7..e1e1feb9e6daaa6f67edc0e825e59c10cb5f562d 100644 (file)
@@ -58,6 +58,7 @@ import {
   getSlot,
 } from './componentSlots'
 import { hmrReload, hmrRerender } from './hmr'
+import { createElement } from './dom/node'
 
 export { currentInstance } from '@vue/runtime-dom'
 
@@ -458,7 +459,7 @@ export function createComponentWithFallback(
     return createComponent(comp, rawProps, rawSlots, isSingleRoot, appContext)
   }
 
-  const el = document.createElement(comp)
+  const el = createElement(comp)
   // mark single root
   ;(el as any).$root = isSingleRoot
 
index 5733ff7d2c6a2b9999bdc0973f0a7b9c01b480e9..ed4a3d1ef55fb958adc03e17d009daddee45c132 100644 (file)
@@ -36,6 +36,7 @@ import {
 } from '../component'
 import { isForBlock } from '../apiCreateFor'
 import { renderEffect } from '../renderEffect'
+import { createElement } from '../dom/node'
 
 const positionMap = new WeakMap<TransitionBlock, DOMRect>()
 const newPositionMap = new WeakMap<TransitionBlock, DOMRect>()
@@ -105,7 +106,7 @@ export const VaporTransitionGroup: ObjectVaporComponent = decorate({
 
       prevChildren.forEach(callPendingCbs)
       prevChildren.forEach(child => {
-        delete child.$transition!.disabled
+        child.$transition!.disabled = false
         recordPosition(child)
       })
       const movedChildren = prevChildren.filter(applyTranslation)
@@ -146,7 +147,7 @@ export const VaporTransitionGroup: ObjectVaporComponent = decorate({
 
     const tag = props.tag
     if (tag) {
-      const container = document.createElement(tag)
+      const container = createElement(tag)
       insert(slottedBlock, container)
       // fallthrough attrs
       if (instance!.hasFallthrough) {
index 83bc32c57f0b0eef5c82cc6da675e3a244ce3edb..26cb66c462cf6634b1b3f54c1b20881cfc557350 100644 (file)
@@ -1,3 +1,8 @@
+/*! #__NO_SIDE_EFFECTS__ */
+export function createElement(tagName: string): HTMLElement {
+  return document.createElement(tagName)
+}
+
 /*! #__NO_SIDE_EFFECTS__ */
 export function createTextNode(value = ''): Text {
   return document.createTextNode(value)
index dbe83364150ea1608978192feef356ab33ea8758..14cace63c712007967df5882fe2376e1a7ec8438 100644 (file)
@@ -3,7 +3,7 @@ import {
   currentHydrationNode,
   isHydrating,
 } from './hydration'
-import { child, createTextNode } from './node'
+import { child, createElement, createTextNode } from './node'
 
 let t: HTMLTemplateElement
 
@@ -23,7 +23,7 @@ export function template(html: string, root?: boolean) {
       return createTextNode(html)
     }
     if (!node) {
-      t = t || document.createElement('template')
+      t = t || createElement('template')
       t.innerHTML = html
       node = child(t.content)
     }