Redux помогает вам более эффективно управлять состояниями в вашем приложении, получая доступ к ним в общедоступном пространстве (хранилище) всеми вашими компонентами.
Представьте, что если у вас есть приложение, в котором дочерние компоненты вложены в 5 или 6 слоев, вы не захотите каждый раз связывать состояние и передавать его полностью вниз. Допустим, каждый из этих вложенных компонентов полагался на изменение состояния и нуждался в способе изменения общего состояния. Было бы действительно утомительно связывать государство и метод доступа к государству по всей цепочке. Введите избыточный код - гораздо проще получить доступ и управлять состояниями.
Другой побочный эффект, с которым вы столкнетесь по мере роста вашего приложения, это непреднамеренные побочные эффекты. Ни одна из этих проблем не устранена полностью с помощью избыточности - но она предназначена для лучшей организации кода и, в свою очередь, облегчения отладки.
Если вы не попали в ограничения, которые есть у React, нет необходимости брать новый инструмент, Redux или что-то еще. НО вот встроенная альтернатива Redux для React:
https://reactjs.org/docs/context.html