Reactなどのビューライブラリと併用できる、予測可能で保守しやすいグローバル状態管理のためのJavaScriptライブラリ。
mobxjs/mobx
依存関係を自動追跡し、再レンダリングを最適化する、JavaScript・TypeScriptアプリ向けのシンプルでスケーラブルな状態管理ライブラリ。
- スター
- 28,218
- フォーク
- 1,810
- 未解決の Issue
- 18
- 最終コミット
- 昨日
これは何?
MobXは、JavaScriptとTypeScript向けの状態管理ライブラリです。データをobservableとして指定し、通常の代入で変更できます。MobXは実行時に、どの計算処理やUIコンポーネントが各値を読み取っているかを追跡し、変更の影響を受けるものだけを再実行します。
状態はプレーンなクラスやオブジェクトとしてモデル化でき、makeAutoObservableを使えば、observableな状態から派生値が自動的に計算されます。observerでラップしたコンポーネント(mobx-react-liteを使ったReactコンポーネントなど)は、読み取る特定のフィールドが更新されたときだけ再レンダリングされるため、通常は手動でのメモ化やセレクターが不要です。
MobXは特定のUIフレームワークに依存しないため、状態管理のロジックをコンポーネントの外に置き、単独でテストできます。プロジェクトのドキュメントはmobx.js.orgで公開されています。
主な機能
- 01実行時に、各計算処理やコンポーネントが読み取る状態を自動追跡します。
- 02非同期コードを含め、通常のJavaScriptの代入で状態を更新できます。
- 03手動で配線することなく、observableな状態から計算値を導出します。
- 04observerを使い、使用するフィールドが変更されたときだけReactコンポーネントを再レンダリングします。
- 05UIフレームワークに依存せず、状態を切り離してテストできます。
ユースケース
- ボイラープレートを最小限に抑えながら、Reactフロントエンドでアプリケーションの共有状態を管理する。
- 特定のフィールドが変更されたときに正確に更新されるUI状態を構築する。
- ビュー層から切り離され、ユニットテストしやすいプレーンなクラスにビジネスロジックを保持する。
クイックスタート
- 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月6日 です。
- mobx は何に使えますか?
- ボイラープレートを最小限に抑えながら、Reactフロントエンドでアプリケーションの共有状態を管理する。 特定のフィールドが変更されたときに正確に更新されるUI状態を構築する。 ビュー層から切り離され、ユニットテストしやすいプレーンなクラスにビジネスロジックを保持する。
- mobx のインストール方法は?
- mobx.js.org のドキュメントを読む npm から mobx パッケージをインストールする: npm install mobx
- mobx はどこで入手できますか?
- ソースコードとインストール手順は GitHub にあります:https://github.com/mobxjs/mobx
概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。
関連プロジェクト
Provider不要の、React向け小型フックベースの状態管理ライブラリ。
ReduxストアをhooksやProviderでReactコンポーネントに接続する、Redux公式のReactバインディングです。
複雑なアプリやワークフローのロジックを管理する、状態機械・ステートチャート・アクター向けの依存関係ゼロのJavaScript/TypeScriptライブラリ。
現在の状態のドラフトを変更するだけで、不変な状態更新を書けるJavaScriptライブラリです。
React、Vue、Svelte、Solid向けのバインディングを備えた、Webアプリ用の非同期状態管理・データ取得ライブラリ。