mirror of https://github.com/vuejs/core.git
fix(watch): revert watch behavior when watching shallow reactive objects
close #9965
This commit is contained in:
parent
06488047c1
commit
a9f781a92c
|
@ -187,7 +187,7 @@ describe('api: watch', () => {
|
||||||
})
|
})
|
||||||
|
|
||||||
// #9916
|
// #9916
|
||||||
it('directly watching shallow reactive array', async () => {
|
it('watching shallow reactive array with deep: false', async () => {
|
||||||
class foo {
|
class foo {
|
||||||
prop1: ShallowRef<string> = shallowRef('')
|
prop1: ShallowRef<string> = shallowRef('')
|
||||||
prop2: string = ''
|
prop2: string = ''
|
||||||
|
@ -198,7 +198,7 @@ describe('api: watch', () => {
|
||||||
|
|
||||||
const collection = shallowReactive([obj1, obj2])
|
const collection = shallowReactive([obj1, obj2])
|
||||||
const cb = vi.fn()
|
const cb = vi.fn()
|
||||||
watch(collection, cb)
|
watch(collection, cb, { deep: false })
|
||||||
|
|
||||||
collection[0].prop1.value = 'foo'
|
collection[0].prop1.value = 'foo'
|
||||||
await nextTick()
|
await nextTick()
|
||||||
|
|
|
@ -225,8 +225,8 @@ function doWatch(
|
||||||
const reactiveGetter = (source: object) =>
|
const reactiveGetter = (source: object) =>
|
||||||
deep === true
|
deep === true
|
||||||
? source // traverse will happen in wrapped getter below
|
? source // traverse will happen in wrapped getter below
|
||||||
: // for shallow or deep: false, only traverse root-level properties
|
: // for deep: false, only traverse root-level properties
|
||||||
traverse(source, isShallow(source) || deep === false ? 1 : undefined)
|
traverse(source, deep === false ? 1 : undefined)
|
||||||
|
|
||||||
let getter: () => any
|
let getter: () => any
|
||||||
let forceTrigger = false
|
let forceTrigger = false
|
||||||
|
|
Loading…
Reference in New Issue