Во-первых, есть разница между React-Redux и Redux. Redux - это контейнер с предсказуемым состоянием для ЛЮБОГО приложения Javascript. Используете ли вы Angular, Ember или обычный Javascript.

Однако Redux чаще всего используется с ReactJS, используя пакет React-Redux. Это связано с тем, что React позволяет описывать ваш пользовательский интерфейс как функцию вашего текущего состояния. React-Redux позволяет вам связывать действия, которые вы создаете в Redux, с вашими компонентами React.

По сути, Redux похож на гигантский родительский компонент, который охватывает все ваше приложение React. Это позволяет Redux обрабатывать все ваше состояние на месте и сохранять его доступным для ВСЕХ ваших дочерних компонентов без необходимости явно вводить this.props.blahBlah для каждого чертовски дочернего компонента.

Звучит потрясающе и просто, правда? Что ж, на высоком уровне это так просто. Но у Redux есть ТОННА новых терминов, которые вам нужно выучить. Честно говоря, это, наверное, самая сложная часть. Когда вы находите руководство, которое говорит вам «отправить тип редуктора внутри вашего действия с асинхронной полезной нагрузкой», вы просто сидите там с открытым ртом.

React-Redux состоит из четырех основных частей.

Часть 1 - Состояние по умолчанию

Это должен быть объект, но это может быть просто пустой объект, если у вас нет статических данных, к которым вам нужен доступ.

Часть 2 - Магазин

Здесь находится все ваше состояние.

Чтобы создать свой магазин, вам необходимо передать ему свои редукторы (о которых мы поговорим дальше) и состояние вашего приложения по умолчанию.

Часть 3 - Редукторы

Редукторы - это чистые функции, которые выполняются в предыдущем состоянии вашего магазина, и действие, которое вы хотели бы использовать для преобразования магазина. Обычно это список операторов case.

Как видите, поскольку редукторы - это чистые функции, вы должны возвращать неизменяемую копию своего состояния с изменениями, которые вы хотите внести.

Часть 4 - Действия

Действия - единственный способ отправить изменения через редукторы в ваш магазин. В основном ваши действия - это функции, которые вы используете в своем фактическом компоненте React для передачи ваших изменений обратно в магазин.

Вот пример действия:

Довольно просто, правда? Что ж, вы можете спросить: «Но как мне использовать это в моем приложении React?» Вы используете встроенную функцию подключения React-Reduxs для сопоставления действий Redux через приложение React.

Теперь у вас есть доступ к действию changeUserInfo в КАЖДОМ компоненте React. Как это круто?!?!

Теперь вы можете перейти к своему компоненту входа в React, который вы создали, и запустить функцию changeUserInfo, когда кто-то заполнит вашу форму входа следующим образом:

Это основы React-Redux. А теперь вперед и творите красивые вещи!