From 11f38d8a853b2d8043212c17612b63df92322de4 Mon Sep 17 00:00:00 2001 From: Evan You Date: Fri, 1 May 2020 13:24:38 -0400 Subject: [PATCH] perf: instance public proxy should never be observed --- packages/runtime-core/src/component.ts | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/packages/runtime-core/src/component.ts b/packages/runtime-core/src/component.ts index dd1bf62ce04..1c9b17baeec 100644 --- a/packages/runtime-core/src/component.ts +++ b/packages/runtime-core/src/component.ts @@ -4,7 +4,8 @@ import { ReactiveEffect, pauseTracking, resetTracking, - shallowReadonly + shallowReadonly, + markRaw } from '@vue/reactivity' import { ComponentPublicInstance, @@ -462,7 +463,8 @@ function setupStatefulComponent( // 0. create render proxy property access cache instance.accessCache = {} // 1. create public instance / render proxy - instance.proxy = new Proxy(instance.ctx, PublicInstanceProxyHandlers) + // also mark it raw so it's never observed + instance.proxy = markRaw(new Proxy(instance.ctx, PublicInstanceProxyHandlers)) if (__DEV__) { exposePropsOnRenderContext(instance) }