一个用于可预测、可维护的全局状态管理的 JavaScript 库,可与 React 或其他视图库搭配使用。
mobxjs/mobx
面向 JavaScript 和 TypeScript 应用的简洁、可扩展状态管理库,自动追踪依赖。
- Star
- 28,216
- Fork
- 1,811
- 未关闭 Issue
- 18
- 最近提交
- 11小时前
这是什么?
MobX 是一个用于 JavaScript 和 TypeScript 的状态管理库。把数据声明为可观察的(observable),之后直接用普通赋值修改即可;MobX 在运行时追踪哪些计算和 UI 组件读取了哪些值,只重新执行受影响的部分。
状态可以用普通类或对象配合 makeAutoObservable 来建模,派生值则根据可观察状态自动计算。用 observer 包裹的组件(例如通过 mobx-react-lite 使用的 React 组件)只在其实际读取的字段变化时重新渲染,通常无需手动使用 memo 或 selector 做优化。
MobX 不绑定任何 UI 框架,状态逻辑可以独立于组件存在,便于单独测试。项目文档位于 mobx.js.org。
核心功能
- 01运行时自动追踪每个计算或组件读取了哪些状态。
- 02直接使用普通 JavaScript 赋值更新状态,异步代码中同样适用。
- 03根据可观察状态自动派生计算值,无需手动连接。
- 04通过 observer 让 React 组件仅在其使用的字段变化时重新渲染。
- 05不依赖任何 UI 框架,状态逻辑可以独立测试。
适用场景
- 在 React 前端中以最少样板代码管理共享应用状态。
- 构建需要在特定字段变化时精确更新的界面状态。
- 将业务逻辑放在与视图层解耦的普通类中,便于单元测试。
快速上手
- 1
阅读 mobx.js.org 上的文档
- 2
从 npm 安装 mobx 包
npm install mobx
收录于专题
标签
常见问题
- mobx 是什么?
- 面向 JavaScript 和 TypeScript 应用的简洁、可扩展状态管理库,自动追踪依赖。 MobX 是一个用于 JavaScript 和 TypeScript 的状态管理库。把数据声明为可观察的(observable),之后直接用普通赋值修改即可;MobX 在运行时追踪哪些计算和 UI 组件读取了哪些值,只重新执行受影响的部分。
- mobx 可以免费使用吗?用的什么许可证?
- mobx 以 MIT 许可证开源。用于商业产品前,请先确认许可证条款。
- mobx 还在维护吗?
- 活跃维护中。mobx 最近一次提交是在 2026年11月7日。
- mobx 适合用来做什么?
- 在 React 前端中以最少样板代码管理共享应用状态。 构建需要在特定字段变化时精确更新的界面状态。 将业务逻辑放在与视图层解耦的普通类中,便于单元测试。
- mobx 怎么安装和运行?
- 阅读 mobx.js.org 上的文档 从 npm 安装 mobx 包: npm install mobx
- 在哪里获取 mobx?
- 源代码和安装说明在 GitHub 上:https://github.com/mobxjs/mobx
概要由 AI 根据项目 README 生成;GitHub 数据每日更新。
相关项目
6.1万+3 本周1.5万TypeScriptMIT更新于 18天前
一个基于 Hook 的轻量 React 状态管理库,无需包裹 Provider。
5.9万+13 本周2189TypeScriptMIT维护活跃更新于 昨天
Redux 官方的 React 绑定库,通过 Provider 和 Hooks 将 Redux 状态连接到 React 组件。
2.3万+1 本周3319TypeScriptMIT更新于 11天前
零依赖的 JavaScript/TypeScript 库,用状态机、状态图和 Actor 管理复杂的应用与工作流逻辑。
3万+38 本周1413TypeScriptMIT更新于 4小时前
一个 JavaScript 库,让你通过修改当前状态的草稿来生成新的不可变状态。
2.9万+4 本周906JavaScriptMIT维护活跃更新于 7天前
面向 Web 应用的异步状态管理与数据获取库,支持 React、Vue、Svelte 和 Solid。
5.1万+29 本周4224TypeScriptMIT更新于 10小时前