Существует бесчисленное множество длинных и сложных статей, пытающихся описать Redux, но сам Redux на самом деле является простой библиотекой. Легко заблудиться в глубине, когда все, что нужно, - это мертвенно простой пример логического процесса, на который можно сослаться. Таким образом, я создал это безумно простое резюме.



Redux: библиотека, которая хранит и обновляет все состояние приложения самым простым способом, используя при этом минимальное количество шаблонного кода.

Действия: простой объект, возвращаемый чистой функцией без побочных эффектов. Объект действия содержит «тип» и любую необходимую информацию для обновления состояния. Объект отправляется в хранилище с помощью dispatch (), и хранилище обновляет состояние, используя информацию, содержащуюся в объекте действия. Действия описывают, что что-то произошло.

Редуктор: чистая функция, которая принимает текущее состояние и действие и выполняет обновление состояния. Возвращает новое состояние. Обычно используйте оператор switch, который считывает action.type, а затем создает новое состояние с этим действием, которое по-прежнему является простым JavaScript.

Хранилище: существует только одно, и оно хранит все состояние в одном объекте. Присвойте его переменной с помощью createStore(combinedReducer). Хранилище передает редуктору два аргумента - предыдущее состояние и действие.

Поток:

  1. Взаимодействие, требующее обновления
  2. Позвоните store.dispatch(action)
  3. Redux store вызывает редуктор
  4. Корневой редуктор может объединять выходные данные нескольких редукторов в одно дерево состояний.
  5. Хранилище Redux сохраняет полное дерево состояний, возвращаемое корневым редуктором.
  6. Компоненты «подписываются» через функцию подключения и соответственно обновляются.

Если вы нашли эту статью полезной, нажмите 👏 . Следуй за мной, чтобы увидеть больше статей о React, Node.js, JavaScript и программном обеспечении с открытым исходным кодом! Вы также можете найти меня в Twitter и gitconnected.