فهرست منبع

refactor(runtime-vapor): remove public instance

三咲智子 Kevin Deng 2 سال پیش
والد
کامیت
efc32b716f

+ 1 - 1
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

+ 0 - 4
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,

+ 0 - 22
packages/runtime-vapor/src/componentPublicInstance.ts

@@ -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<any> = {
-  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]
-    }
-  },
-}

+ 1 - 5
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
           }
         }

+ 1 - 5
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
       }