На этой неделе я решил углубиться в Redux… вот что я узнал.
Почему Redux?
В React состояния/реквизиты/данные передаются от компонента к компоненту в каскадном формате («проп-бурение») — для этого процесса необходимы деревья компонентов.
Часто я открывал неправильное дерево компонентов по мере того, как углублялся в проект; Я обнаружил, что перемещаю свойства и состояния «на уровень выше», чтобы больше компонентов могли получить доступ к данным. Я переходил от одного компонента к другому… пытаясь найти, где вложены исходные данные/состояние. Это было особенно сложно, когда данные усложнялись… что приводило к многочисленным вкладкам VSCode и хаосу.
Недавно я решил поковыряться в Redux, который, как я слышал, может решить упомянутые выше проблемы. Мой процесс обучения был пугающим, учитывая расширенный синтаксис и процессы установки Redux… поэтому я решил задокументировать части этой головоломки ниже.
Общий цикл:
Store → Action Creator (функции) → Actions (тип действия, полезная нагрузка) → Dispatch (встроено в действия) → Reducer
Как это настроить?
Перед запуском установите npm:
реакция-редукс
редукционный преобразователь
Шаг 1. «Открыть/создать» магазин
Подумайте о банке. В банке хранится информация о деньгах/пользователях (например, данные), к которым могут получить доступ все компоненты приложения («глобальное состояние»).
- Обязательно добавьте redux-thunk!
Шаг 2. Подключите магазин к компонентам React через ‹Provider›.
Это должно быть в корневом компоненте приложения React.
Шаг 3: подключите магазин к компонентам React через { useSelector }
{ useSelector } вызывает определенные состояния из хранилища
Шаг 4: создайте действия с помощью создателей действий + подготовьте их к отправке в редюсер + объедините и импортируйте их в приложение React
Например, когда мы идем в банк, у нас есть несколько вариантов/действий — мы можем:
- снять деньги
- внести деньги
Теперь нам нужно будет импортировать эти действия в App.js.
Шаг 5: создайте + объедините редукторы (для действий, которые выполняются в магазине)
Редукторы содержат информацию, которая может изменить состояние элементов в «магазине» на основе действий, описанных в магазине. С технической точки зрения редьюсер — это функция, которая в конечном итоге возвращает состояние.
У нас может быть много разных редукторов; в контексте банка… у нас могут быть редукторы, которые, например:
- манипулировать суммой денег на нашем банковском счете
Нам также нужно объединить редукторы для легкого доступа в приложении React. Это также будет импортировано в «магазин».
Это основные элементы для соединения React с Redux!