Настройка Redux в React-приложении включает следующие шаги

Шаг 1: Установка зависимостей

Установите необходимые пакеты через npm или yarn:

npm install --save redux react-redux @reduxjs/toolkit

или

yarn add redux react-redux @reduxjs/toolkit

Шаг 2: Создание хранилища Redux (store)

Создаем файл src/store.js:

import { configureStore } from '@reduxjs/toolkit';

// Создаем начальное состояние приложения
const initialState = {
  counter: 0,
};

// Редьюсер — описывает изменения состояния
const reducer = (state = initialState, action) => {
  switch (action.type) {
    case 'INCREMENT':
      return { ...state, counter: state.counter + 1 };
    case 'DECREMENT':
      return { ...state, counter: state.counter - 1 };
    default:
      return state;
  }
};

// Настраиваем store
export const store = configureStore({
  reducer,
});

Шаг 3: Подключение хранилища к приложению

Оборачиваем наше приложение в компонент <Provider> из библиотеки react-redux, чтобы компоненты могли получать доступ к состоянию через useSelector.

Файл index.js:

import React from 'react';
import ReactDOM from 'react-dom/client';
import App from './App';
import { Provider } from 'react-redux'; // Импортируем провайдер
import { store } from './store'; // Импортируем созданный ранее store

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

Шаг 4: Использование состояний и действий внутри компонентов

Используем хук useDispatch() для отправки действий и useSelector() для чтения текущего состояния.

Пример компонента Counter.js:

import React from 'react';
import { useSelector, useDispatch } from 'react-redux';

const Counter = () => {
  const count = useSelector((state) => state.counter); // Получаем значение счётчика
  const dispatch = useDispatch(); // Функция для отправки действия

  return (
    <div>
      <h1>Счётчик: {count}</h1>
      <button onClick={() => dispatch({ type: 'INCREMENT' })}>+</button>
      <button onClick={() => dispatch({ type: 'DECREMENT' })}>-</button>
    </div>
  );
};

export default Counter;

Итоги:

Теперь ваше приложение настроено на использование Redux! Вот ключевые моменты:

  • Redux Store хранит глобальное состояние приложения.
  • Редьюсер обрабатывает действия и обновляет состояние.
  • Компоненты используют хуки (useSelector и useDispatch) для взаимодействия с состоянием и отправкой действий.

Это базовая настройка, которую можно расширять по мере усложнения проекта добавлением асинхронности, middleware и более сложных структур хранения данных.

Похожие записи

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *