# MobX 7.0.0 - Product: MobX (https://whatsnew.fyi/product/mobx) - Vendor: MobX - Date: 2026-07-30 - Version: 7.0.0 - Original notes: https://github.com/mobxjs/mobx/releases/tag/mobx%407.0.0 - Permalink: https://whatsnew.fyi/product/mobx/releases/7.0.0 What's New is an index, not a publisher: every entry below links to the vendor's own release notes, which are the authoritative source. Entries are labelled where they are hand-curated sample data, pre-releases, or drawn from a secondary source such as a developer blog. Reuse: the summaries, labels and curation here are © What's New. Quote freely with attribution and a link back; wholesale republication of the corpus is not permitted — terms: https://whatsnew.fyi/terms. The vendors' own release notes remain their publishers'. --- - **removed** — ES5/non-proxy fallback for observable objects and arrays; MobX now always uses Proxy-backed observables - **removed** — configure({ useProxies: ... }) option - **removed** — { proxy: false } option for observable, observable.object, and observable.array - **removed** — Legacy decorators support - **removed** — Namespaced annotation properties observable.ref, observable.shallow, observable.deep, and observable.struct in favor of named exports observableRef, observableShallow, observableDeep, and observableStruct - **removed** — Namespaced comparer and computed properties comparer.identity, comparer.default, comparer.structural, comparer.shallow, computed.struct, action.bound, and flow.bound in favor of named exports compareIdentity, compareDefault, compareStructural, compareShallow, computedStruct, actionBound, and flowBound - **removed** — Public trace API and related runtime support; use toJS, getDependencyTree, getObserverTree, spy or mobx-log package for debugging - **changed** — mobx-react-lite now requires MobX 7 and React 18 or later - **changed** — mobx-react now requires MobX 7 and React 18 or later - **removed** — Provider, inject, and MobXProviderContext from React binding packages; use React.createContext directly - **removed** — disposeOnUnmount from React binding packages; dispose reactions in componentWillUnmount or return cleanup functions from useEffect - **removed** — PropTypes export from React binding packages; use TypeScript or the regular prop-types package - **removed** — useObserver from React binding packages; wrap components with observer or use - **removed** — useLocalStore from React binding packages; use useLocalObservable instead - **removed** — useAsObservableSource from React binding packages; synchronize values from props into local observable state explicitly - **removed** — useStaticRendering from React binding packages; use enableStaticRendering instead - **removed** — observerBatching, isObserverBatched, batchingForReactDom, batchingOptOut, and batchingForReactNative from React binding packages; React 18+ renderers handle batching - **deprecated** — observer(fn, { forwardRef: true }) syntax; pass an already-created React.forwardRef(...) component to observer instead - **removed** — Legacy function-component contextTypes handling from React binding packages - **changed** — Minified error URLs shortened to reduce production bundle size ###### Major Changes - [`1926c69f53168619d688f348aa587e8f3ae579ae`](https://github.com/mobxjs/mobx/commit/1926c69f53168619d688f348aa587e8f3ae579ae) [#4671](https://github.com/mobxjs/mobx/pull/4671) Thanks [@kubk](https://github.com/kubk)! - Release MobX 7, mobx-react-lite 5, and mobx-react 10. Bundle sizes are down: ESM prod 17.02 KiB gzip -> 13.96 KiB gzip; a minimal tree-shaken example is 10.32 KiB gzip now. It removes long-deprecated compatibility paths and keeps the React bindings split between `mobx-react-lite` for function components and `mobx-react` for class-component support. ## MobX 7 MobX 7 is a cleanup release focused on the modern runtime and decorator model. - MobX now always uses Proxy-backed observable objects and arrays. The ES5/non-proxy fallback has been removed. - `configure({ useProxies: ... })` is no longer supported. - `{ proxy: false }` options for `observable`, `observable.object`, and `observable.array` are no longer supported. - Legacy decorators are no longer supported. - Namespaced annotation and comparer properties now use named exports to reduce bundle size: | Removed API | Replacement | | --------------------- | ------------------- | | `observable.ref` | `observableRef` | | `observable.shallow` | `observableShallow` | | `observable.deep` | `observableDeep` | | `observable.struct` | `observableStruct` | | `computed.struct` | `computedStruct` | | `action.bound` | `actionBound` | | `flow.bound` | `flowBound` | | `comparer.identity` | `compareIdentity` | | `comparer.default` | `compareDefault` | | `comparer.structural` | `compareStructural` | | `comparer.shallow` | `compareShallow` | - The public `trace` API and its related runtime support have been removed. Use `toJS`, `getDependencyTree`, `getObserverTree`, `spy` or `mobx-log` package for debugging. ## mobx-react-lite 5 and mobx-react 10 mobx-react-lite 5 and mobx-react 10 require MobX 7 and React 18 or later. `mobx-react-lite` remains the function-component package. `mobx-react` remains a thin wrapper around `mobx-react-lite` that adds class component and Stage 3 `@observer` class decorator support. - Keep function-component imports on `mobx-react-lite` if you do not need class component support. - Use `mobx-react` when you need class components or `@observer` class decorators. - `mobx-react-lite` supports function components and `forwardRef`; `mobx-react` delegates function components to `mobx-react-lite` and handles classes itself. - Remove React batching imports, including the stale React Native batching deep import. React 18+ renderers handle batching. The recommended public React binding surface for both packages is: - `observer` - `Observer` - `useLocalObservable` - `enableStaticRendering` - `isUsingStaticRendering` The following APIs have been removed from the React binding packages: - `Provider`, `inject`, and `MobXProviderContext`; use `React.createContext` directly. - `disposeOnUnmount`; dispose reactions in `componentWillUnmount` or return cleanup functions from `useEffect`. - `PropTypes`; use TypeScript or the regular `prop-types` package. - `useObserver`; wrap components with `observer` or use ``. - `useLocalStore`; use `useLocalObservable`. - `useAsObservableSource`; synchronize values from props into local observable state explicitly. - `useStaticRendering`; use `enableStaticRendering`. - `observerBatching`, `isObserverBatched`, `batchingForReactDom`, `batchingOptOut`, and `batchingForReactNative`; remove these imports because React 18+ renderers handle batching. - Deprecated `observer(fn, { forwardRef: true })`; pass an already-created `React.forwardRef(...)` component to `observer` ins _[Truncated at 4000 characters — full notes: https://github.com/mobxjs/mobx/releases/tag/mobx%407.0.0]_