diff --git a/packages/runtime-vapor/src/apiCreateApp.ts b/packages/runtime-vapor/src/apiCreateApp.ts index f1112e9a0..66c16be45 100644 --- a/packages/runtime-vapor/src/apiCreateApp.ts +++ b/packages/runtime-vapor/src/apiCreateApp.ts @@ -16,7 +16,7 @@ const mountApp: AppMountFn = (app, container) => { container.textContent = '' } const instance = createComponent(app._component) - insert(instance.block, container) + insert(instance, container) return instance } diff --git a/packages/runtime-vapor/src/dom/element.ts b/packages/runtime-vapor/src/dom/element.ts index 1df04b8a7..5c8171b8f 100644 --- a/packages/runtime-vapor/src/dom/element.ts +++ b/packages/runtime-vapor/src/dom/element.ts @@ -1,4 +1,4 @@ -import { isArray } from '@vue/shared' +import { invokeArrayFns, isArray } from '@vue/shared' import { renderEffect } from '../renderEffect' import { setText } from './prop' import { type Block, normalizeBlock } from '../block' @@ -12,7 +12,9 @@ export function insert( if (block instanceof Node) { parent.insertBefore(block, anchor) } else if (isVaporComponent(block)) { + if (block.bm) invokeArrayFns(block.bm) insert(block.block, parent, anchor) + if (block.m) invokeArrayFns(block.m) } else if (isArray(block)) { for (let i = 0; i < block.length; i++) { insert(block[i], parent, anchor)