Прежде чем я перейду к делу, давайте начнем с определения Redux и проблем, которые он решает.
Redux – это библиотека JavaScript с открытым исходным кодом для управления состоянием приложения.
По сути, это компиляция всех состояний компонентов в приложении, которая хранится в изолированном хранилище, и вы можете получить к ней доступ из любого подключенного к ней компонента, не применяя технику подъема состояния. Он решает многие проблемы, связанные с масштабированием приложения, читабельностью кода и соблюдением принципа DRY.
Масштабирование
Как только приложение получает много связанных компонентов, такое же количество состояний будет увеличиваться, тем самым заполняя родительские компоненты тоннами данных. Таких «хранилищ» в приложении может быть много, особенно если много модулей.
Redux решает эту проблему, создавая основное хранилище состояний, и каждый компонент может извлекать из него данные (к которым у него есть доступ). Действительно, вы получаете состояние приложения, к которому компоненты имеют доступ.
Читаемость кода и DRY
Чтобы начать работу с Redux, вы должны создать reducer, action/ action creator и storage(узнайте больше о Flux). Каждое действие и редюсер должны быть чистой функцией. Это помогает убрать ошибки, вызванные изменением входных данных, и сделать функции многоразовыми. По сравнению с состоянием компонента, состояние приложения нужно передавать в props только один раз в основном компоненте и обертывать другие.