Fluxフロー図
Storeとは
Storeはstateを保存する
- StoreとReducersを関連づける
- Redux(Store)とReactを接続する
- Storeの状態を変更する
Store | モジュールのimport
- reduxモジュールのimport
- Reducersのimport
//src/deducks/store/store.js
// 1.reduxモジュールのimport
import {
createStore as reduxCreateStore,
combineReducers
} from 'redux';
// 2.Reducersのimport
import { ProductsReducer } from '../products/reducers';
import { UsersReducer } from "../users/reducers";
Store | createStore関数の定義
1.reduxのcreateStoreメソッドをreturn
2.combineReducersでstateを生成
//src/deducks/store/store.js
export default function createStore() {
// 1.reduxのcreateStoreメソッドをreturn
return reduxCreateStore(
// 2.combineReducersでstateを生成
combineReducers({
products: ProductsReducer,
users: UsersReducer
})
);
}
combineReducersとは
1.分割したReducersをまとめる
2.stateのカテゴリ毎
3.オブジェクトをreturnする(stateのデータ構造)
combineReducers({
products: ProductsReducer,
users: UsersReducer
})
// ⬇︎
{
products: {
// productsのstate
},
users: {
isSignedIn: false,
uid: "",
username: ""
}
}
StoreとReactアプリの接続
import React from 'react';
import ReactDOM from 'react-dom';
import { Provider } from 'react-redux';
import createStore from "./reducks/store/store";
import './index.css';
import App from './App';
import * as serviceWorker from './serviceWorker';
export const store = createStore();
ReactDOM.render(
<Provider store={store}>
<App />
</Provider>,
document.getElementById('root')
);
serviceWorker.unregister();
react-reduxのProviderとは
- propsにstoreを渡す
⇨ ラップしたコンポーネントにstoreの情報を渡す
- Reactコンポーネント内でreact-reduxのconnect関数を使えるようにする
⇨ reactとReduxを接続してstareを変更できるように
参考サイト
[日本一わかりやすいReact-Redux入門#6...Redux(Store)とReactを接続してstateを変更しよう]
(https://www.youtube.com/watch?v=t_-Tpc913B4)
[React- Redux 入門]
(https://qiita.com/shtwangy/items/4f9993ade64c3c6858d3)