refactor(reactivity): adjust APIs
BREAKING CHANGE: Reactivity APIs adjustments: - `readonly` is now non-tracking if called on plain objects. `lock` and `unlock` have been removed. A `readonly` proxy can no longer be directly mutated. However, it can still wrap an already reactive object and track changes to the source reactive object. - `isReactive` now only returns true for proxies created by `reactive`, or a `readonly` proxy that wraps a `reactive` proxy. - A new utility `isProxy` is introduced, which returns true for both reactive or readonly proxies. - `markNonReactive` has been renamed to `markRaw`.
This commit is contained in:
@@ -3,7 +3,7 @@ import {
|
||||
reactive,
|
||||
isReactive,
|
||||
toRaw,
|
||||
markNonReactive,
|
||||
markRaw,
|
||||
shallowReactive
|
||||
} from '../src/reactive'
|
||||
import { mockWarn } from '@vue/shared'
|
||||
@@ -146,10 +146,10 @@ describe('reactivity/reactive', () => {
|
||||
expect(reactive(d)).toBe(d)
|
||||
})
|
||||
|
||||
test('markNonReactive', () => {
|
||||
test('markRaw', () => {
|
||||
const obj = reactive({
|
||||
foo: { a: 1 },
|
||||
bar: markNonReactive({ b: 2 })
|
||||
bar: markRaw({ b: 2 })
|
||||
})
|
||||
expect(isReactive(obj.foo)).toBe(true)
|
||||
expect(isReactive(obj.bar)).toBe(false)
|
||||
|
||||
Reference in New Issue
Block a user