Skip to content

Commit

Permalink
refactor(runtime-core): remove attrsProxy and slotsProxy from instance (
Browse files Browse the repository at this point in the history
  • Loading branch information
edison1105 authored Jul 19, 2024
1 parent 5df67e3 commit 1b81d14
Showing 1 changed file with 8 additions and 16 deletions.
24 changes: 8 additions & 16 deletions packages/runtime-core/src/component.ts
Original file line number Diff line number Diff line change
Expand Up @@ -396,9 +396,6 @@ export interface ComponentInternalInstance {
refs: Data
emit: EmitFn

attrsProxy: Data | null
slotsProxy: Slots | null

/**
* used for keeping track of .once event handlers on components
* @internal
Expand Down Expand Up @@ -599,9 +596,6 @@ export function createComponentInstance(
setupState: EMPTY_OBJ,
setupContext: null,

attrsProxy: null,
slotsProxy: null,

// suspense related
suspense,
suspenseId: suspense ? suspense.pendingId : 0,
Expand Down Expand Up @@ -1042,15 +1036,12 @@ const attrsProxyHandlers = __DEV__
* Dev-only
*/
function getSlotsProxy(instance: ComponentInternalInstance): Slots {
return (
instance.slotsProxy ||
(instance.slotsProxy = new Proxy(instance.slots, {
get(target, key: string) {
track(instance, TrackOpTypes.GET, '$slots')
return target[key]
},
}))
)
return new Proxy(instance.slots, {
get(target, key: string) {
track(instance, TrackOpTypes.GET, '$slots')
return target[key]
},
})
}

export function createSetupContext(
Expand Down Expand Up @@ -1084,6 +1075,7 @@ export function createSetupContext(
// We use getters in dev in case libs like test-utils overwrite instance
// properties (overwrites should not be done in prod)
let attrsProxy: Data
let slotsProxy: Slots
return Object.freeze({
get attrs() {
return (
Expand All @@ -1092,7 +1084,7 @@ export function createSetupContext(
)
},
get slots() {
return getSlotsProxy(instance)
return slotsProxy || (slotsProxy = getSlotsProxy(instance))
},
get emit() {
return (event: string, ...args: any[]) => instance.emit(event, ...args)
Expand Down

0 comments on commit 1b81d14

Please sign in to comment.