Ответ 1
Сверху моей головы, несколько преимуществ:
- В большинстве случаев ваше дерево состояний приложения может значительно отличаться от дерева пользовательского интерфейса
- Многим компонентам может потребоваться доступ к одному состоянию и отображение их по-разному.
- Горячие компоненты перезагрузки уничтожат существующее дерево компонентов, включая любое состояние, хранящееся внутри них. Сохранение состояния отдельно от дерева пользовательского интерфейса позволяет выгружать и обновлять дерево пользовательского интерфейса обновленными компонентами, сохраняя при этом текущее состояние разработки.
И это, прежде чем перейти ко многим из часто обсуждаемых преимуществ, таких как предсказуемые обновления состояния, отладка во время путешествия, улучшенная тестируемость и централизованная логика.
Конечно, вы можете написать целое приложение, не используя ничего, кроме состояния компонента React (и сам Дэн Абрамов говорит, что люди часто вскакивают в Redux слишком рано), но с моей точки зрения Redux абсолютно достоин этого.
изменить
Я написал расширенную версию этого ответа в качестве статьи на сайте Full Stack React: Redux и почему это хорошо для вас.