redixの使用
reduceはステータス管理ライブラリです.
反応状態から状態を管理すると、素子間の状態移動が複雑になり、困難になる.
この問題を解決するためにステータス管理ライブラリが表示されます.
つまり,State移動が発生するほどReduxが輝く.
では、RidexでStateを管理する方法について説明します.
まず,反応の状態をすべて収集する概念を用いた.
この集まった銀行はstoreと呼ばれています.
もちろん、storeには管理したい状態が含まれています.
店には管理したい州が集まっている.
リアクターは、usStateを使用して状態を変更する関数を使用して状態を変更します.
つまり、stateを直接変えさせない.
reduceもstore内でstateを直接変更することはできません.
反応器のように状態を変える関数を提供できますか?
直接体現しなければならない.この球を減速機と呼ぶ.
すなわち,reduceはstoreコンテンツを変更する実装体である.
それでは早速storeを作りましょう
因子は以下に説明する
reduceルールでは、storeは1つだけ作成する必要があります.
まだ深く書いていないので、なぜか分かりません.管理が難しいかもしれません
1つのstoreのみを使用すると、すべてのステータス管理要素が集約されます.
またstoreは動的生成の概念ではない.
ルータのようにアプリケーションの初期実行時にstoreを事前に適用する必要があります.
この意味はstoreに格納されているstateを予め定義する必要がある.
ショップを作成するときに2番目のパラメータとして入るInitialStateです.
名前は重要ではありません.管理するstateの初期値の集合です.
以下のとおりです.
stateは定義済みです.もちろんstateのapiを変更するにも事前定義が必要です.
これが最初のパラメータに加えられたreduceです.stateはオブジェクトであり、reduceも関数です.
HooksのuseStateではなく、クラスのsetStateです.
では、setStateのようにcomaだけを交換したいなら、comb、comcも交換しますか?
そうだ.comaだけを変えたいとしても,初期状態と同じオブジェクト形態を保つ.
航続員はレンタカーの価格でstoreの価格を変えることを約束した.
では、李杜瑟は次のような形しかできません.
Actionは変更したい値です.
Actionはオブジェクト形式で存在し、通常type、dataからなる.
このようにしなければならないのは、変更したい値だけを変更する論理を1つの関数から分離して実施しなければならないので、そうするしかない...
switch文を使用してtypeに基づいて変更するデータと残りのステータスを構造分解割当てに分解します.
どう言っても無知な方法だ.要するに、storeが作成され、storeを変更するためのreduceも作成されました.
次に、storeのstateをcomponentから取得し、変更してみましょう.
まずstoreのcompaを持ってきてください
userSelectorはreact-redoxモジュールが提供するhooks用のAPIである.
userSelectorを使用すると、storeから値を簡単に減算できます.
もうすぐ着きます.今はcomaを変えるだけです.
まずはソースから見るとこんな感じ
上に説明したように、私たちが実現したreduceは直接呼び出さず、dispatch関数です.
私の代わりにreduceを呼んでください.reduceのパラメータを覚えていますか?
reduceのパラメータはprestateとactionです.それは私たちが決めたのではなく、事前に約束したのです.
reduceを直接呼び出す場合は、prevStateのロードを続行する必要があります.
また、便宜上、reduce呼び出しの代わりにdispatchというrapping関数を呼び出すこともできます.
我々はactionと呼ぶ,すなわち減速機に対してタイプと変更を行うデータである.
しかしその動作は一般的にそのまま対象に入れるのではなく、一般的な関数として作られる.
これをaction Creatorといいます
最終的に下図のような構造になる.
結局他のブログでは、まず用語から~説明してから説明しました.
そうするしかないようです.しかし、今では用語を見るともっと難しいと思います.
action createでactionを作成しdispatchに挿入
あ、またこのように要約すると、もっと難しいです.ほほほ(dispatch(comAction(「b」)
dispatchはreduceを呼び出します
reduceはactionのタイプに従って新しい状態を返します
storeが新しい状態に更新されました
値取得にはuserSelector~(どうせ反応器で使うんでしょ?)
反応状態から状態を管理すると、素子間の状態移動が複雑になり、困難になる.
この問題を解決するためにステータス管理ライブラリが表示されます.
つまり,State移動が発生するほどReduxが輝く.
では、RidexでStateを管理する方法について説明します.
store
まず,反応の状態をすべて収集する概念を用いた.
この集まった銀行はstoreと呼ばれています.
もちろん、storeには管理したい状態が含まれています.
reducer
店には管理したい州が集まっている.
リアクターは、usStateを使用して状態を変更する関数を使用して状態を変更します.
つまり、stateを直接変えさせない.
reduceもstore内でstateを直接変更することはできません.
反応器のように状態を変える関数を提供できますか?
直接体現しなければならない.この球を減速機と呼ぶ.
すなわち,reduceはstoreコンテンツを変更する実装体である.
ストレージの作成
それでは早速storeを作りましょう
const store = createStore(reducer, initialState);
上記のようにcreateStoreを使用してstoreを作成します.因子は以下に説明する
reduceルールでは、storeは1つだけ作成する必要があります.
まだ深く書いていないので、なぜか分かりません.管理が難しいかもしれません
1つのstoreのみを使用すると、すべてのステータス管理要素が集約されます.
またstoreは動的生成の概念ではない.
ルータのようにアプリケーションの初期実行時にstoreを事前に適用する必要があります.
ReactDOM.render(
<Provider store={store}>
<App />
</Provider>,
document.querySelector('#root'),
);
上記のように、レンダリング時にProviderでラップします.この意味はstoreに格納されているstateを予め定義する必要がある.
ショップを作成するときに2番目のパラメータとして入るInitialStateです.
名前は重要ではありません.管理するstateの初期値の集合です.
以下のとおりです.
const initialState = {
compA: 'a',
compB: 12,
compC: null,
};
論理的に考えてみましょうstateは定義済みです.もちろんstateのapiを変更するにも事前定義が必要です.
これが最初のパラメータに加えられたreduceです.stateはオブジェクトであり、reduceも関数です.
HooksのuseStateではなく、クラスのsetStateです.
では、setStateのようにcomaだけを交換したいなら、comb、comcも交換しますか?
そうだ.comaだけを変えたいとしても,初期状態と同じオブジェクト形態を保つ.
航続員はレンタカーの価格でstoreの価格を変えることを約束した.
では、李杜瑟は次のような形しかできません.
const reducer = (prevState, action) => { // 새로운 state 만들어주기
switch (action.type) {
case 'CHANGE_COMP_A':
return {
...prevState,
compA: action.data,
};
case 'CHANGE_COMP_B':
return {
...prevState,
compB: action.data,
};
case 'CHANGE_COMP_C':
return {
...prevState,
compC: action.data,
};
default:
return prevState;
}
};
トカゲは上記のヘルメットで作らなければなりません.prevStateは、既存のストレージのステータスの値です.Actionは変更したい値です.
Actionはオブジェクト形式で存在し、通常type、dataからなる.
このようにしなければならないのは、変更したい値だけを変更する論理を1つの関数から分離して実施しなければならないので、そうするしかない...
switch文を使用してtypeに基づいて変更するデータと残りのステータスを構造分解割当てに分解します.
どう言っても無知な方法だ.要するに、storeが作成され、storeを変更するためのreduceも作成されました.
次に、storeのstateをcomponentから取得し、変更してみましょう.
まずstoreのcompaを持ってきてください
const comA = useSelector((state) => state.comA);
簡単です.ホークスでそのまま持って来ればいいです.classはちょっと複雑です.フックを直接使いましょうuserSelectorはreact-redoxモジュールが提供するhooks用のAPIである.
userSelectorを使用すると、storeから値を簡単に減算できます.
もうすぐ着きます.今はcomaを変えるだけです.
まずはソースから見るとこんな感じ
const dispatch = useDispatch();
dispatch({ // action
type: 'CHANGE_COMP_A',
data: 'b'
});
上記の説明のようにreduceを呼ぶべきです.上に説明したように、私たちが実現したreduceは直接呼び出さず、dispatch関数です.
私の代わりにreduceを呼んでください.reduceのパラメータを覚えていますか?
reduceのパラメータはprestateとactionです.それは私たちが決めたのではなく、事前に約束したのです.
reduceを直接呼び出す場合は、prevStateのロードを続行する必要があります.
また、便宜上、reduce呼び出しの代わりにdispatchというrapping関数を呼び出すこともできます.
我々はactionと呼ぶ,すなわち減速機に対してタイプと変更を行うデータである.
しかしその動作は一般的にそのまま対象に入れるのではなく、一般的な関数として作られる.
これをaction Creatorといいます
const comAAction = (data) => {
return { // action
type: 'CHANGE_COMP_A',
data: data
};
};
const dispatch = useDispatch();
dispatch(comAaction('b'));
それを動作関数にすると、データが長くなってもソースコードがきれいになります(実際には感じませんが...)最終的に下図のような構造になる.
結局他のブログでは、まず用語から~説明してから説明しました.
そうするしかないようです.しかし、今では用語を見るともっと難しいと思います.
コアサマリー
あ、またこのように要約すると、もっと難しいです.ほほほ(dispatch(comAction(「b」)
dispatchはreduceを呼び出します
reduceはactionのタイプに従って新しい状態を返します
storeが新しい状態に更新されました
値取得にはuserSelector~(どうせ反応器で使うんでしょ?)
Reference
この問題について(redixの使用), 我々は、より多くの情報をここで見つけました https://velog.io/@shson/redux-사용하기テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol