[Redux]ステータス管理
![](https://s1.md5.ltd/image/fdee4c52b0f05d82f9f4d1038fdecfae.png)
Reduxとは?
ReduxはJavaScriptアプリケーションの予測可能な状態コンテナです
(=ステータス管理ライブラリ)
ガイドを使用すると、構成部品の外でステータス管理を行います.
親から子までの子がステータスを持っている場合、「≪リカバリ|Recovery|emdw≫」を使用してコンポーネント構造の外にステータスを配置したり、ショップを仲介者としてステータスを更新したり、新しいステータスを渡したりすることができます.従って、複数の素子間でも、どれだけ深い素子間でも、直属の親から得られるように、所望の状態値を選択してpropsを容易に取得することができる.
ReduxはReactとは違います.
反応ライブラリではなく他のライブラリで使用することもできます.
Reduxの3つのルール
1.アプリケーションにショップがあります。
しかし、必ずしもそうではない.
一部の更新が頻繁であるか、アプリケーションの一部が完全に分離されている場合は、複数のショップが作成される可能性があります.しかし、このようにすれば、開発ツールを利用することはできません.
2. State is read-only
既存のステータスを変更せずに、新しいステータスを作成して更新します.
このように更新すれば,後で開発者ツールを介して後方または後方に更新することができる.
Ridexで不変性を保つ必要があるのは,内部データの変化を検出するために浅い等しい検査を行ったからである.このようにすれば、対象の変化を検出する際に、中に深く入り込むのではなく、軽く味わうだけで済むので、良好な性能を保つことができます.
3. Changes are made with pure functions
変化を引き起こす関数、reducerは純粋な関数でなければなりません.
Reduxのメリット
Reduxの基本概念
![](https://s1.md5.ltd/image/89f61f641edb8cd1f75bf429ec600766.png)
Action
アプリケーションのデータをstoreのオブジェクトに転送します.
状態に変化が必要な場合は、動作が発生します.
アクションオブジェクトのフォーマットは次のとおりです.
{
type: 'TOGGLE_VALUE'
}
アクションオブジェクトにはtypeフィールドが必要です.この値を動作の名前に考えればいいです.また,その他の値は,後で状態更新を行う際に参照すべき値であり,作成者が任意に入力できる.アクション作成関数(action creator)
アクションオブジェクトを作成する関数
function addTodo(data) {
return {
type: 'ADD_TODO',
data
};
}
const changeInput = text => ({
type: 'CHANGE_INPUT',
text
})
Reducer
変化を引き起こす関数.動作を作成して生成すると,Reduserは現在の状態と伝達された動作オブジェクトをパラメータとして受信する.次に、2つの値を参照して新しいステータスを作成し、戻ります.
const initialState = {
counter: 1
};
function reducer(state = initialState, action) {
switch(action.type) {
case INCREMENT:
return {
counter: state.counter + 1
};
default:
return state;
}
}
Store
コピーをプロジェクトに適用するショップを作成します.1つのプロジェクトには1つの店しかありません.ショップには、現在のアプリケーションのステータスとリカバリプログラムが含まれています.また、いくつかの重要な組み込み関数もあります.
Dispatch
dispatchはショップの内蔵関数の一つです.Dispatchは「動作が発生する」と理解できる.この関数はdispatch(action)と同じ形式で動作オブジェクトをパラメータとして呼び出す.
この関数を呼び出すと、ショップはリカバリ関数を実行して新しいステータスを作成します.
「動作オブジェクトはDispatchに渡され、DispatchはReducerを呼び出して新しい状態を生成する」
Subscribe
購読もショップの内蔵機能の一つです.リスナー関数をパラメータとしてsubscribe関数に入れて呼び出すと、リスナー関数は動作がdispatcherされ、状態が更新されると呼び出されます.
const listener = () => {
console.log('상태가 업데이트됨');
}
const unsubscribe = store.subscribe(listener);
unsubscribe(); // 추후 구독을 비활성화할 때 함수를 호출
Presentational Component / Container Component
Presentational Component
主にステータス管理はなく、propsを受信してUIのコンポーネントを画面に表示するだけです.
Container Component
リドス関連の部品は、リドスからステータスを取得し、リドスショップにもアクションを派遣します.
useSelector(), useDispatch()
リカバリストアに関連付けられたコンテナ構成部品を作成する場合は、connect関数ではなくreact-redoxが提供するHooksを使用することもできます.
ユーザー・セレクタを使用したステータスの表示
const 결과 = useSelector(상태 선택 함수)
useDispatchを使用したアクションの送信
このHookでは、コンポーネント内でショップの内蔵関数dispatchを使用できます.
const dispatch = useDispatch();
dispatch({ type: 'SAMPLE_ACTION' });
Reference
この問題について([Redux]ステータス管理), 我々は、より多くの情報をここで見つけました https://velog.io/@wpdbs4419/Redux-상태-관리テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol