Kyle Chen's Blog

Action speaks louder than Words

0%

Redux の使い方

Redux の使い方

1. Redux の基本的な概念

Redux を使うためには、まず以下の基本的な概念を理解することが重要です:

  • Store(ストア):アプリケーションの状態が格納される場所。すべてのデータが一元管理されます。
  • Action(アクション):状態を変更したいときに発行するオブジェクトで、type プロパティと必要に応じて他のデータを含んでいます。
  • Reducer(リデューサー):アクションが発行されると、リデューサーが新しい状態を生成します。これは純粋な関数で、前の状態とアクションを受け取り、新しい状態を返します。
  • Dispatch(ディスパッチ):アクションをストアに送る関数。これを使って状態を更新します。

2. Redux のインストール

まず、React プロジェクトに Redux をインストールします:

1
npm install redux react-redux
  • redux は状態管理のためのライブラリです。
  • react-redux は React と Redux を接続するためのライブラリです。

3. Redux ストアの作成

まず、ストアを作成します。ストアは、アプリケーションの状態を管理する中心的な役割を果たします。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
// store.js
import { createStore } from 'redux';

// 初期状態
const initialState = {
count: 0
};

// リデューサー関数
const counterReducer = (state = initialState, action) => {
switch (action.type) {
case 'INCREMENT':
return { count: state.count + 1 };
case 'DECREMENT':
return { count: state.count - 1 };
default:
return state;
}
};

// ストアを作成
const store = createStore(counterReducer);

export default store;

4. Action の定義

アクションは、状態の更新を表すオブジェクトです。アクションには少なくとも type プロパティを含める必要があります。

1
2
3
4
5
6
7
8
// actions.js
export const increment = () => ({
type: 'INCREMENT'
});

export const decrement = () => ({
type: 'DECREMENT'
});

5. React コンポーネントで Redux ストアを使用する

React アプリケーションで Redux のストアを使うために、Provider コンポーネントでストアをラップし、アプリ全体にストアを提供します。

1
2
3
4
5
6
7
8
9
10
11
12
13
// index.js
import React from 'react';
import ReactDOM from 'react-dom';
import { Provider } from 'react-redux';
import store from './store';
import App from './App';

ReactDOM.render(
<Provider store={store}>
<App />
</Provider>,
document.getElementById('root')
);

6. Redux ステートをコンポーネントで接続

React コンポーネントで Redux のステートを使うためには、useSelector を使ってストアからデータを取得し、useDispatch を使ってアクションをディスパッチします。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
// App.js
import React from 'react';
import { useSelector, useDispatch } from 'react-redux';
import { increment, decrement } from './actions';

const App = () => {
// Redux ストアから state を取得
const count = useSelector(state => state.count);

// アクションをディスパッチする関数
const dispatch = useDispatch();

return (
<div>
<h1>Count: {count}</h1>
<button onClick={() => dispatch(increment())}>Increment</button>
<button onClick={() => dispatch(decrement())}>Decrement</button>
</div>
);
};

export default App;

7. Redux の使い方のまとめ

  • Store:状態を格納する場所。createStore を使って作成します。
  • Action:状態を変更するためにディスパッチされるオブジェクト。type プロパティを含みます。
  • Reducer:状態変更のためのロジック。アクションを受け取り、新しい状態を返します。
  • useSelector:React コンポーネント内で Redux の状態を取得するフック。
  • useDispatch:アクションをストアにディスパッチするフック。

これで、Redux を使