fix(runtome-core): do not cache property access in beforeCreate hook
fix #1756
This commit is contained in:
parent
d4c17fb48b
commit
f6afe7000e
@ -364,6 +364,8 @@ function createDuplicateChecker() {
|
||||
|
||||
type DataFn = (vm: ComponentPublicInstance) => any
|
||||
|
||||
export let isInBeforeCreate = false
|
||||
|
||||
export function applyOptions(
|
||||
instance: ComponentInternalInstance,
|
||||
options: ComponentOptions,
|
||||
@ -407,7 +409,9 @@ export function applyOptions(
|
||||
|
||||
// applyOptions is called non-as-mixin once per instance
|
||||
if (!asMixin) {
|
||||
isInBeforeCreate = true
|
||||
callSyncHook('beforeCreate', options, publicThis, globalMixins)
|
||||
isInBeforeCreate = false
|
||||
// global mixins are applied first
|
||||
applyMixins(instance, globalMixins, deferredData, deferredWatch)
|
||||
}
|
||||
|
@ -26,7 +26,8 @@ import {
|
||||
ComponentOptionsMixin,
|
||||
OptionTypesType,
|
||||
OptionTypesKeys,
|
||||
resolveMergedOptions
|
||||
resolveMergedOptions,
|
||||
isInBeforeCreate
|
||||
} from './componentOptions'
|
||||
import { normalizePropsOptions } from './componentProps'
|
||||
import { EmitsOptions, EmitFn } from './componentEmits'
|
||||
@ -254,7 +255,7 @@ export const PublicInstanceProxyHandlers: ProxyHandler<any> = {
|
||||
} else if (ctx !== EMPTY_OBJ && hasOwn(ctx, key)) {
|
||||
accessCache![key] = AccessTypes.CONTEXT
|
||||
return ctx[key]
|
||||
} else {
|
||||
} else if (!__FEATURE_OPTIONS_API__ || !isInBeforeCreate) {
|
||||
accessCache![key] = AccessTypes.OTHER
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user