From efc32b716fece04e3c5e7035f2bffc0327d4b347 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=B8=89=E5=92=B2=E6=99=BA=E5=AD=90=20Kevin=20Deng?= Date: Mon, 25 Dec 2023 02:40:31 +0800 Subject: [PATCH] refactor(runtime-vapor): remove public instance --- .../runtime-vapor/__tests__/apiWatch.spec.ts | 2 +- packages/runtime-vapor/src/component.ts | 4 ---- .../src/componentPublicInstance.ts | 22 ------------------- packages/runtime-vapor/src/errorHandling.ts | 6 +---- packages/runtime-vapor/src/render.ts | 6 +---- 5 files changed, 3 insertions(+), 37 deletions(-) delete mode 100644 packages/runtime-vapor/src/componentPublicInstance.ts diff --git a/packages/runtime-vapor/__tests__/apiWatch.spec.ts b/packages/runtime-vapor/__tests__/apiWatch.spec.ts index 02f88dedb..ce8eae5c8 100644 --- a/packages/runtime-vapor/__tests__/apiWatch.spec.ts +++ b/packages/runtime-vapor/__tests__/apiWatch.spec.ts @@ -137,7 +137,7 @@ describe('watchEffect and onEffectCleanup', () => { } const instance = render(demo as any, {}, '#host') - const { change } = instance.proxy as any + const { change } = instance.setupState as any expect(calls).toEqual(['pre 0', 'sync 0', 'render 0']) calls.length = 0 diff --git a/packages/runtime-vapor/src/component.ts b/packages/runtime-vapor/src/component.ts index 914f7beb6..240df9d85 100644 --- a/packages/runtime-vapor/src/component.ts +++ b/packages/runtime-vapor/src/component.ts @@ -37,9 +37,6 @@ export interface ComponentInternalInstance { parent: ComponentInternalInstance | null - // TODO: type - proxy: Data | null - // state props: Data setupState: Data @@ -144,7 +141,6 @@ export const createComponentInstance = ( // resolved props and emits options propsOptions: normalizePropsOptions(component), // emitsOptions: normalizeEmitsOptions(type, appContext), // TODO: - proxy: null, // state props: EMPTY_OBJ, diff --git a/packages/runtime-vapor/src/componentPublicInstance.ts b/packages/runtime-vapor/src/componentPublicInstance.ts deleted file mode 100644 index 8bfacf981..000000000 --- a/packages/runtime-vapor/src/componentPublicInstance.ts +++ /dev/null @@ -1,22 +0,0 @@ -import { hasOwn } from '@vue/shared' -import { type ComponentInternalInstance } from './component' - -export interface ComponentRenderContext { - [key: string]: any - _: ComponentInternalInstance -} - -export const PublicInstanceProxyHandlers: ProxyHandler = { - get({ _: instance }: ComponentRenderContext, key: string) { - let normalizedProps - const { setupState, props } = instance - if (hasOwn(setupState, key)) { - return setupState[key] - } else if ( - (normalizedProps = instance.propsOptions[0]) && - hasOwn(normalizedProps, key) - ) { - return props![key] - } - }, -} diff --git a/packages/runtime-vapor/src/errorHandling.ts b/packages/runtime-vapor/src/errorHandling.ts index d7449f3b4..6f8bcb5c6 100644 --- a/packages/runtime-vapor/src/errorHandling.ts +++ b/packages/runtime-vapor/src/errorHandling.ts @@ -113,8 +113,6 @@ export function handleError( ) { if (instance) { let cur = instance.parent - // the exposed instance is the render proxy to keep it consistent with 2.x - const exposedInstance = ('proxy' in instance && instance.proxy) || null // in production the hook receives only the error code const errorInfo = __DEV__ ? ErrorTypeStrings[type] @@ -123,9 +121,7 @@ export function handleError( const errorCapturedHooks = 'ec' in cur ? cur.ec : null if (errorCapturedHooks) { for (let i = 0; i < errorCapturedHooks.length; i++) { - if ( - errorCapturedHooks[i](err, exposedInstance, errorInfo) === false - ) { + if (errorCapturedHooks[i](err, instance, errorInfo) === false) { return } } diff --git a/packages/runtime-vapor/src/render.ts b/packages/runtime-vapor/src/render.ts index 1f53978e8..dd6c2b2df 100644 --- a/packages/runtime-vapor/src/render.ts +++ b/packages/runtime-vapor/src/render.ts @@ -10,7 +10,6 @@ import { import { initProps } from './componentProps' import { invokeDirectiveHook } from './directive' import { insert, remove } from './dom' -import { PublicInstanceProxyHandlers } from './componentPublicInstance' export type Block = Node | Fragment | Block[] export type ParentBlock = ParentNode | Node[] @@ -51,9 +50,6 @@ export function mountComponent( const setupFn = typeof component === 'function' ? component : component.setup - instance.proxy = markRaw( - new Proxy({ _: instance }, PublicInstanceProxyHandlers), - ) const state = setupFn && setupFn(props, ctx) let block: Block | null = null if (state && '__isScriptSetup' in state) { @@ -61,7 +57,7 @@ export function mountComponent( const currentlyRenderingActivity = isRenderingActivity isRenderingActivity = true try { - block = component.render(instance.proxy) + block = component.render(instance.setupState) } finally { isRenderingActivity = currentlyRenderingActivity }