From: SerKo <44749100+serkodev@users.noreply.github.com> Date: Thu, 5 Jun 2025 02:19:16 +0000 (+0800) Subject: fix(reactivity): add `__v_skip` flag to `Dep` to prevent reactive conversion (#12804) X-Git-Tag: v3.5.17~20 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=e8d8f5f604e821acc46b4200d5b06979c05af1c2;p=thirdparty%2Fvuejs%2Fcore.git fix(reactivity): add `__v_skip` flag to `Dep` to prevent reactive conversion (#12804) close #12803 --- diff --git a/packages/reactivity/__tests__/readonly.spec.ts b/packages/reactivity/__tests__/readonly.spec.ts index 9acd5c6491..b035779f85 100644 --- a/packages/reactivity/__tests__/readonly.spec.ts +++ b/packages/reactivity/__tests__/readonly.spec.ts @@ -8,7 +8,9 @@ import { reactive, readonly, ref, + shallowRef, toRaw, + triggerRef, } from '../src' /** @@ -520,3 +522,16 @@ describe('reactivity/readonly', () => { expect(r.value).toBe(ro) }) }) + +test('should be able to trigger with triggerRef', () => { + const r = shallowRef({ a: 1 }) + const ror = readonly(r) + let dummy + effect(() => { + dummy = ror.value.a + }) + r.value.a = 2 + expect(dummy).toBe(1) + triggerRef(ror) + expect(dummy).toBe(2) +}) diff --git a/packages/reactivity/src/dep.ts b/packages/reactivity/src/dep.ts index 196c2aaf98..8ad8a389ba 100644 --- a/packages/reactivity/src/dep.ts +++ b/packages/reactivity/src/dep.ts @@ -93,6 +93,12 @@ export class Dep { */ sc: number = 0 + /** + * @internal + */ + readonly __v_skip = true + // TODO isolatedDeclarations ReactiveFlags.SKIP + constructor(public computed?: ComputedRefImpl | undefined) { if (__DEV__) { this.subsHead = undefined