🐣
[Rexux] ざっと流れの整理
作成日:
2022/03/05
3
https://medium.com/hootsuite-engineering/stateless-components-with-react-f38f8a888e6e
- ストアの初期状態を定義
const initialState = {
color: "black"
};
- ストアを更新するためのReduxアクションを定義
const CHANGE_COLOR = "CHANGE_COLOR";
const changeColor = color => {
return { type: CHANGE_COLOR, color: color };
};
- Reduxレデューサー(※)を定義
const changeColorReducer = (state = initialState, action) => {
switch (action.type) {
case CHANGE_COLOR:
return Object.assign({}, state, {
color: action.color
});
default:
return state;
}
};
- createStoreでStoreを初期化
const store = createStore(changeColorReducer, initialState);
※レデューサーは純粋関数であること
純粋関数とは
https://tech.recruit-mp.co.jp/front-end/post-15837/
結果は引数として与えられた値からのみ計算される
関数の外部で変更される可能性のあるデータに一切依存しない
関数実行部の外側に存在する何かの状態を一切変更しない
let val: number = 0;
// 純粋関数
function inc(x: number): number {
return x + 1;
}
// 純粋関数
function double(x: number): number {
return x * 2;
}
// 不純な関数
// 結果が外部で変更される可能性のあるデータに依存
function getGlobalVal(): number {
return val;
}
// 不純な関数
// 外側に存在する変数の状態を変更してる
function updateVal(x: number) {
val = x;
}
制作会社でフロントのコーディングやWordpressのテーマ開発をしてます。
本命はJavascriptです😋
目指せフロントエンドエンジニア👊