From db3151b1a5afd346d70a72e4e473d4fabacd5bd7 Mon Sep 17 00:00:00 2001 From: Evan You Date: Fri, 6 Dec 2024 23:06:11 +0800 Subject: [PATCH] wip: avoid including vdom-only public properties map in bundle --- packages/runtime-core/src/apiCreateApp.ts | 4 ++-- packages/runtime-core/src/renderer.ts | 8 +++++++- packages/runtime-vapor/src/apiCreateApp.ts | 3 ++- 3 files changed, 11 insertions(+), 4 deletions(-) diff --git a/packages/runtime-core/src/apiCreateApp.ts b/packages/runtime-core/src/apiCreateApp.ts index 511344ebe..9162b0e00 100644 --- a/packages/runtime-core/src/apiCreateApp.ts +++ b/packages/runtime-core/src/apiCreateApp.ts @@ -4,7 +4,6 @@ import { type Data, type GenericComponent, type GenericComponentInstance, - getComponentPublicInstance, validateComponentName, } from './component' import type { @@ -280,6 +279,7 @@ export function createAppAPI( // hydrate?: RootHydrateFunction, mount: AppMountFn, unmount: AppUnmountFn, + getPublicInstance: (instance: GenericComponentInstance) => any, render?: RootRenderFunction, ): CreateAppFunction { return function createApp(rootComponent, rootProps = null) { @@ -409,7 +409,7 @@ export function createAppAPI( // for devtools and telemetry rootContainer.__vue_app__ = app - return getComponentPublicInstance(instance) + return getPublicInstance(instance) } else if (__DEV__) { warn( `App has already been mounted.\n` + diff --git a/packages/runtime-core/src/renderer.ts b/packages/runtime-core/src/renderer.ts index 9f4e3e2e4..a21476de2 100644 --- a/packages/runtime-core/src/renderer.ts +++ b/packages/runtime-core/src/renderer.ts @@ -20,6 +20,7 @@ import { type Data, type LifecycleHook, createComponentInstance, + getComponentPublicInstance, setupComponent, } from './component' import { @@ -2445,7 +2446,12 @@ function baseCreateRenderer( return { render, hydrate, - createApp: createAppAPI(mountApp, unmountApp, render), + createApp: createAppAPI( + mountApp, + unmountApp, + getComponentPublicInstance, + render, + ), } } diff --git a/packages/runtime-vapor/src/apiCreateApp.ts b/packages/runtime-vapor/src/apiCreateApp.ts index 55b0f7a25..597918e58 100644 --- a/packages/runtime-vapor/src/apiCreateApp.ts +++ b/packages/runtime-vapor/src/apiCreateApp.ts @@ -29,7 +29,8 @@ export const createVaporApp: CreateAppFunction< ParentNode, VaporComponent > = comp => { - if (!_createApp) _createApp = createAppAPI(mountApp, unmountApp) + if (!_createApp) + _createApp = createAppAPI(mountApp, unmountApp, i => i.exposed) const app = _createApp(comp) const mount = app.mount app.mount = (container, ...args: any[]) => {