Redux — это популярная библиотека управления состоянием для приложений JavaScript, обычно используемая с такими фреймворками, как React. Это помогает управлять состоянием приложения предсказуемым и централизованным способом, упрощая анализ и поддержку.
Вот пример того, как вы можете использовать Redux в простом приложении React:
Допустим, у нас есть приложение-счетчик, которое позволяет пользователю увеличивать или уменьшать значение счетчика. Мы будем использовать Redux для управления состоянием счетчика.
Во-первых, давайте настроим наш магазин Redux:
// store.js
импортировать {createStore} из «редукции»;
// Исходное состояние
const initialState = {
counter: 0
};
// Функция редуктора
const counterReducer = (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; };
// Создать хранилище Redux
const store = createStore(counterReducer);
экспортировать магазин по умолчанию;
В этом примере мы определяем начальное состояние со свойством counter
, установленным на 0. Мы также определяем функцию-редуктор с именем counterReducer
, которая обрабатывает обновления состояния на основе различных типов действий. Функция createStore
из Redux используется для создания нашего хранилища Redux, передавая counterReducer
в качестве аргумента.
Далее давайте создадим наши компоненты React, которые взаимодействуют с хранилищем Redux:
// App.js
импортировать React из «реакции»;
импортировать {useSelector, useDispatch} из «реагировать-редукс»;
const App = () =› {
// Доступ к состоянию счетчика из хранилища Redux
const counter = useSelector(state =› state.counter);
// Доступ к функция отправки из хранилища Redux
const dispatch = useDispatch();
return (
‹div›
‹h1›Counter: {counter}‹/h1›
‹button onClick={() =› dispatch({ type: 'INCREMENT' })}› Увеличение‹/кнопка›
‹кнопка onClick={() =› dispatch({ type: 'DECREMENT' })}›Уменьшение‹/кнопка›
‹/div›
); };
экспортировать приложение по умолчанию;
В этом примере мы используем хуки useSelector
и useDispatch
из библиотеки react-redux
для взаимодействия с хранилищем Redux. Хук useSelector
позволяет нам получить доступ к состоянию counter
из хранилища Redux, а хук useDispatch
дает нам доступ к функции dispatch
для отправки действий в хранилище Redux.
Наконец, нам нужно подключить наш магазин Redux к нашему приложению React:
// index.js
импортировать React из 'react';
импортировать ReactDOM из 'react-dom';
импортировать { Provider } из 'react-redux';
импортировать хранилище из './store';
импортировать приложение из './App';
ReactDOM.render(
‹Provider store={store}›
‹App /›
‹/Provider›,
document.getElementById('root')
) ;
В этом примере мы используем компонент Provider
из библиотеки react-redux
, чтобы обернуть наш компонент App
, предоставив хранилище Redux для нашего приложения. Это делает хранилище Redux доступным для всех компонентов в Provider
иерархии компонентов.
Теперь, когда пользователь нажимает кнопки «Увеличить» или «Уменьшить» в нашем компоненте App
, соответствующие действия будут отправлены в хранилище Redux, а counterReducer
будет соответствующим образом обрабатывать обновления состояния. Затем обновленное состояние будет отражено в пользовательском интерфейсе, поскольку доступ к состоянию counter
осуществляется из хранилища Redux с помощью хука useSelector
.