0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Redux の使い方

Posted at

Redux の使い方

1. Redux の基本的な概念

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

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

2. Redux のインストール

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

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

3. Redux ストアの作成

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

// 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 プロパティを含める必要があります。

// actions.js
export const increment = () => ({
  type: 'INCREMENT'
});

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

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

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

// 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 を使ってアクションをディスパッチします。

// 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 を使

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?