mirror of https://github.com/vuejs/core.git
refactor(runtime-vapor): remove public instance
This commit is contained in:
parent
3d4bc018d7
commit
efc32b716f
|
@ -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
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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]
|
||||
}
|
||||
},
|
||||
}
|
|
@ -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
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue