Mobx:Reactのためのシンプルでスケーラブルな状態管理ソリューション
Mobxは、特にReactにおいて、JavaScriptアプリケーションに人気のある州管理ライブラリです。集中型の店舗や明示的なアクションディスパッチに依存するReduxとは異なり、Mobxは状態の管理に対してより反応的なアプローチを取ります。依存関係を追跡し、状態が変更されたときにアプリケーションの必要な部分のみを再レンダリングすることにより、アプリケーションの状態とUIを自動的に更新します。
。
このガイドでは、Mobxの重要な概念、Reactでそれをセットアップする方法、およびReactアプリケーションでの状態管理に効果的に使用する方法を説明します。
1。 mobxとは?
Mobxは、アプリケーションの状態を管理するために Reactiveプログラミングを活用する州の管理ライブラリです。状態に依存するUIの部分を自動的に追跡および更新するため、アプリケーションデータを管理するための非常に効率的で直感的な方法になります。
mobxの重要な機能:
-
自動依存関係追跡:mobxは、アプリケーションのどの部分がどの状態に依存するかを自動的に追跡します。
-
シンプルで直感的な:mobxを使用すると、アクションを手動で発送したり、状態を更新する必要はありません。 mobxは状態の変更に自動的に反応します。
-
宣言:mobxは観測可能なアプローチを使用します。ここで、状態を observable として定義し、状態が変更されたときにコンポーネントを自動的に再レンダリングします。
- パフォーマンス用に最適化された:mobxは、変化した状態に依存するコンポーネントのみを更新し、高度に最適化されたパフォーマンスをもたらします。。
2。 mobxのコアコンセプト
Mobxは、状態を管理するために連携するいくつかのコアコンセプトを中心に構築されています:
1。観察可能な状態
観測可能状態はMOBXの中核です。オブジェクトが
がとしてマークされている場合、mobxはそのオブジェクトの状態を追跡し、それに依存するコンポーネントを自動的に更新します。
例:
'mobx'から{observable} import};
const counter = Observable({
値:0、
increment(){
this.value;
}、
Decrent(){
this.value--;
}、
});
import { observable } from 'mobx';
const counter = observable({
value: 0,
increment() {
this.value ;
},
decrement() {
this.value--;
},
});
観測可能なデコレーターは、カウンターオブジェクトを反応させます。値が変わるたびに、この状態を使用する反応コンポーネントは自動的に再レンダリングします。-
2。アクション
MOBXのアクションは、状態を変更する関数です。慣習により、MOBXは、状態が制御された予測可能な方法で更新されることを保証するため、観察可能な状態を更新するためにアクションを使用する必要があります。
例:
'mobx'から{action}をimport;
const counter = Observable({
値:0、
増分:action(function(){
this.value;
})、
DECREMENT:action(function(){
this.value--;
})、
});
import { observable } from 'mobx';
const counter = observable({
value: 0,
increment() {
this.value ;
},
decrement() {
this.value--;
},
});
増分と減少方法はアクションであり、アクションデコレータを使用して定義されています。これらの方法は状態を変更します。-
3。計算された値
計算値は、観察可能な状態から派生しています。観察可能な状態が変化すると、計算された値が自動的に再計算され、アプリケーションの状態が一貫していることを保証します。
例:
'mobx'から{Computed}をimport;
const counter = Observable({
値:0、
increment(){
this.value;
}、
Decrent(){
this.value--;
}、
doublevalue()を取得{
this.value * 2を返します。
}、
});
import { observable } from 'mobx';
const counter = observable({
value: 0,
increment() {
this.value ;
},
decrement() {
this.value--;
},
});
doubleValueは、観察可能な値から派生した計算値です。値が変わるたびに、二重値は再計算されます。-
4。反応
反応は、観察可能な値が変化するたびに実行される副作用です。反応は、状態の変化に基づいてアクションをトリガーするのに役立ちます。
例:
'mobx'から{autorun}をimport;
const counter = Observable({
値:0、
increment(){
this.value;
}、
Decrent(){
this.value--;
}、
});
autorun(()=> {
console.log( `counter value is:$ {counter.Value}`);
});
import { observable } from 'mobx';
const counter = observable({
value: 0,
increment() {
this.value ;
},
decrement() {
this.value--;
},
});
autorun関数は、counter.valueが変更されるたびに自動的に実行される反応です。更新されたカウンター値をコンソールにログに記録します。-
3。 MobxをReact と統合する
Mobxは、アプリの状態を管理するためにSeamlessly -Reactと統合します。 Reactでは、MOBXは
オブザーバーのコンポーネントを使用して、状態の変更を追跡し、必要に応じてUIを自動的に更新することで動作します。。
ステップ1:mobxとrace-mobx をインストールする
ReactアプリケーションでMOBXを使用するには、MOBXとMOBX-React:
をインストールする必要があります。
npm Install Mobx Mobx-React
import { observable } from 'mobx';
const counter = observable({
value: 0,
increment() {
this.value ;
},
decrement() {
this.value--;
},
});
ステップ2:観察可能なストアを作成
アプリケーションの状態を保持するストアを作成します。このストアは観察可能であり、コンポーネントはその変更に反応できます。
例:
Import {Observable、Action} from 'mobx';
クラスカウンターストア{
@observable value = 0;
@action increment(){
this.value;
}
@Action Decrent(){
this.value--;
}
}
const Conterstore = new Counterstore();
import { observable } from 'mobx';
const counter = observable({
value: 0,
increment() {
this.value ;
},
decrement() {
this.value--;
},
});
Counterstoreクラスは、観察可能な状態(値)とアクション(増分と減少)を定義します。- 。
ステップ3:反応コンポーネントオブザーバーを作成します
ReactコンポーネントをMOBXに接続するには、MOBX-Reactのオブザーバーの高次コンポーネントを使用する必要があります。これにより、観察可能な状態が変更されたときにコンポーネントが自動的に再レンダリングできます。
例:
Import React from 'React';
'mobx-react'から{observer}をインポートします。
'./CounterStore'から{CounterStore}をインポートします。
const counter = observer(()=> {
戻る (
count:{counterstore.value}
);
});
デフォルトカウンターをエクスポートします。
import { observable } from 'mobx';
const counter = observable({
value: 0,
increment() {
this.value ;
},
decrement() {
this.value--;
},
});
カウンターコンポーネントはオブザーバーで包まれているため、カウンターストアの変化に反応します。 Counterstore.Valueが変更されると、コンポーネントを自動的に再レンダリングして新しい値を反映します。- 。
ステップ4:アプリケーションでストアを使用
これで、ストアがセットアップされ、コンポーネントがオブザーバーで覆われているので、アプリケーションでストアを使用できます。
Import React from 'React';
「React-dom」から{render}をインポートします。
'mobx-react'から{provider}をインポートします。
'./counter'からカウンターをインポートします。
'./CounterStore'から{CounterStore}をインポートします。
const app =()=>(
);
render(
、document.getElementById( 'root'));
import { observable } from 'mobx';
const counter = observable({
value: 0,
increment() {
this.value ;
},
decrement() {
this.value--;
},
});
- プロバイダーは、ストアをアプリケーションに注入するために使用されます。カウンターコンポーネントは、対応物に直接アクセスできるようになりました。
4。 mobxを使用することの利点
1。シンプルさ
Mobxは状態を簡単に管理できるようにし、Reduxのような他の州の管理図書館で一般的に見られるボイラープレートと複雑さを減らします。
2。自動再レンダリング
状態が変更されると、mobxはその状態に依存するコンポーネントの再レンダリングを自動的に処理します。
3。細粒の観察可能性
MOBXは、状態が変更され、パフォーマンスの向上時に必要なコンポーネントのみが再レンダリングされることを保証します。
4。宣言国家管理
Mobxとともに、状態は宣言的に管理されています。状態がどのように振る舞うべきかを定義する必要があり、Mobxは残りを処理します。
5。結論
Mobxは、リアクティブなプログラミング原則を使用する強力で効率的な州管理ライブラリです。シンプルなセットアップと自動状態追跡により、Reactアプリケーションでの状態の管理がはるかに容易になります。 MOBXは、更新とパフォーマンスの最適化に対する細かい制御を必要とするアプリケーションにとって特に有益です。
複雑なReactアプリケーションを構築し、理解しやすい状態管理ソリューションを必要とする場合、Mobxは優れた選択肢です。それは直感的で強力で、反応とシームレスに動作し、最適化された開発エクスペリエンスを提供します。