From: Carlos Rodrigues Date: Sun, 6 Oct 2019 15:46:09 +0000 (+0100) Subject: refactor(reactivity): change _isRef to use refSymbol as key (#124) X-Git-Tag: v3.0.0-alpha.0~577 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=8d70093802f2ed538844a13b3ed4a5b6020b509b;p=thirdparty%2Fvuejs%2Fcore.git refactor(reactivity): change _isRef to use refSymbol as key (#124) --- diff --git a/packages/reactivity/src/computed.ts b/packages/reactivity/src/computed.ts index c22a33e4b2..4e11b7c754 100644 --- a/packages/reactivity/src/computed.ts +++ b/packages/reactivity/src/computed.ts @@ -45,7 +45,7 @@ export function computed( } }) return { - _isRef: refSymbol, + [refSymbol]: 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 ff25d371d3..b0de05863b 100644 --- a/packages/reactivity/src/ref.ts +++ b/packages/reactivity/src/ref.ts @@ -3,11 +3,10 @@ import { OperationTypes } from './operations' import { isObject } from '@vue/shared' import { reactive } from './reactive' -export const refSymbol = Symbol() -export type RefSymbol = typeof refSymbol +export const refSymbol = Symbol(__DEV__ ? 'refSymbol' : undefined) export interface Ref { - _isRef: RefSymbol + [refSymbol]: true value: UnwrapNestedRefs } @@ -18,7 +17,7 @@ const convert = (val: any): any => (isObject(val) ? reactive(val) : val) export function ref(raw: T): Ref { raw = convert(raw) const v = { - _isRef: refSymbol, + [refSymbol]: true, get value() { track(v, OperationTypes.GET, '') return raw @@ -32,7 +31,7 @@ export function ref(raw: T): Ref { } export function isRef(v: any): v is Ref { - return v ? v._isRef === refSymbol : false + return v ? v[refSymbol] === true : false } export function toRefs( @@ -50,7 +49,7 @@ function toProxyRef( key: K ): Ref { const v = { - _isRef: refSymbol, + [refSymbol]: true, get value() { return object[key] },