diff --git a/packages/runtime-core/src/apiWatch.ts b/packages/runtime-core/src/apiWatch.ts index 0c13e72988f..e3a3454ef59 100644 --- a/packages/runtime-core/src/apiWatch.ts +++ b/packages/runtime-core/src/apiWatch.ts @@ -231,10 +231,12 @@ function doWatch( getter = () => source.value forceTrigger = isShallow(source) } else if (isReactive(source)) { - getter = - isShallow(source) || deep === false - ? () => traverse(source, 1) - : () => traverse(source) + if (isShallow(source) || deep === false) { + getter = () => traverse(source, 1) + } else { + getter = () => source + deep = true + } forceTrigger = true } else if (isArray(source)) { isMultiSource = true