React.jsとReduxでアプリケーションを管理する方法

この記事では、React.jsとReduxを使ってアプリケーションを効率的に管理する方法を解説します。Reduxを利用することで、複数の状態を一元管理し、コードの保守性とスケーラビリティを向上させる方法を学びます。

Reduxを使ったアプリケーションの管理とは?

Reduxは、React.jsアプリケーションで状態を管理するための強力なツールです。複数のコンポーネント間で一貫した状態管理を実現し、アプリケーションの保守が簡単になります。

  
  // Reduxの基本構造
  const initialState = { todos: [] };

  function todoReducer(state = initialState, action) {
    switch (action.type) {
      case 'ADD_TODO':
        return { todos: [...state.todos, action.payload] };
      case 'REMOVE_TODO':
        return { todos: state.todos.filter(todo => todo.id !== action.payload) };
      default:
        return state;
    }
  }
  

ReduxをReact.jsアプリに組み込む手順

ReduxをReact.jsに組み込むには、まずストアを作成し、次にReact ReduxのProviderコンポーネントを使ってアプリにストアを提供します。

  
  import { createStore } from 'redux';
  import { Provider } from 'react-redux';
  import todoReducer from './reducers';

  const store = createStore(todoReducer);

  function App() {
    return (
      
        
      
    );
  }

  function TodoApp() {
    const todos = useSelector((state) => state.todos);
    const dispatch = useDispatch();

    const addTodo = (text) => dispatch({ type: 'ADD_TODO', payload: { id: Date.now(), text } });
    const removeTodo = (id) => dispatch({ type: 'REMOVE_TODO', payload: id });

    return (
      
{ if (e.key === 'Enter') addTodo(e.target.value); }} />
    {todos.map(todo => (
  • {todo.text}
  • ))}
); }

Reduxで複数の状態を効率的に管理する

Reduxを使うと、複数の状態を効率的に一元管理できます。例えば、複数のReducerを組み合わせて、異なる状態を管理することができます。

  
  import { combineReducers } from 'redux';

  const userReducer = (state = {}, action) => {
    switch (action.type) {
      case 'SET_USER':
        return { ...state, user: action.payload };
      default:
        return state;
    }
  };

  const todoReducer = (state = [], action) => {
    switch (action.type) {
      case 'ADD_TODO':
        return [...state, action.payload];
      case 'REMOVE_TODO':
        return state.filter(todo => todo.id !== action.payload);
      default:
        return state;
    }
  };

  const rootReducer = combineReducers({
    user: userReducer,
    todos: todoReducer
  });

  const store = createStore(rootReducer);
  

React.jsとReduxでアプリケーションを管理する方法のまとめ

この記事では、Reduxを使ってReact.jsアプリケーションを効率的に管理する方法を学びました。Reduxを活用することで、複数の状態を一元管理し、アプリケーション全体の状態をスムーズに管理できるようになります。

タイトルとURLをコピーしました