diff --git a/packages/reactivity/src/computed.ts b/packages/reactivity/src/computed.ts index 3dc478f61..ec26028b2 100644 --- a/packages/reactivity/src/computed.ts +++ b/packages/reactivity/src/computed.ts @@ -1,5 +1,5 @@ import { effect, ReactiveEffect, activeReactiveEffectStack } from './effect' -import { Ref, refSymbol, UnwrapRef } from './ref' +import { Ref, UnwrapRef } from './ref' import { isFunction, NOOP } from '@vue/shared' export interface ComputedRef extends WritableComputedRef { @@ -46,7 +46,7 @@ export function computed( } }) return { - [refSymbol]: true, + _isRef: true, // expose effect so computed can be stopped effect: runner, get value() { diff --git a/packages/reactivity/src/ref.ts b/packages/reactivity/src/ref.ts index 7fec6ffbf..24fabbc86 100644 --- a/packages/reactivity/src/ref.ts +++ b/packages/reactivity/src/ref.ts @@ -4,10 +4,8 @@ import { isObject } from '@vue/shared' import { reactive } from './reactive' import { ComputedRef } from './computed' -export const refSymbol = Symbol(__DEV__ ? 'refSymbol' : '') - export interface Ref { - [refSymbol]: true + _isRef: true value: UnwrapRef } @@ -21,7 +19,7 @@ export function ref(raw: any) { } raw = convert(raw) const v = { - [refSymbol]: true, + _isRef: true, get value() { track(v, OperationTypes.GET, '') return raw @@ -35,7 +33,7 @@ export function ref(raw: any) { } export function isRef(v: any): v is Ref { - return v ? v[refSymbol] === true : false + return v ? v._isRef === true : false } export function toRefs( @@ -53,7 +51,7 @@ function toProxyRef( key: K ): Ref { return { - [refSymbol]: true, + _isRef: true, get value(): any { return object[key] },