diff --git a/src/v3/reactivity/ref.ts b/src/v3/reactivity/ref.ts index 114e6f563d8..244acc9b0d4 100644 --- a/src/v3/reactivity/ref.ts +++ b/src/v3/reactivity/ref.ts @@ -119,7 +119,16 @@ export function proxyWithRefUnwrap( Object.defineProperty(target, key, { enumerable: true, configurable: true, - get: () => unref(source[key]), + get: () => { + const val = source[key] + if (isRef(val)) { + return val.value + } else { + const ob = val && val.__ob__ + if (ob) ob.dep.depend() + return val + } + }, set: value => { const oldValue = source[key] if (isRef(oldValue) && !isRef(value)) {