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:
Evan You
2020-04-15 16:45:20 -04:00
parent 11654a6e50
commit 09b4202a22
11 changed files with 139 additions and 125 deletions

View File

@@ -2,20 +2,24 @@
export const version = __VERSION__
export {
// core
reactive,
ref,
readonly,
// utilities
unref,
shallowRef,
isRef,
toRef,
toRefs,
customRef,
reactive,
isProxy,
isReactive,
readonly,
isReadonly,
// advanced
customRef,
shallowRef,
shallowReactive,
shallowReadonly,
markNonReactive,
markRaw,
toRaw
} from '@vue/reactivity'
export { computed } from './apiComputed'