結論、Reduxを使う理由は「状態管理をしやすくするため」です。
状態管理とは、階層の深い部分で変数の値(状態)が変更されたときに、その変更された値を他のコンポーネントにバケツリレーして伝えていくことです。
例えば、Reactの場合で考えてみます。
Reactでは、コンポーネント内で別のコンポーネントを使っていくので、次々とコンポーネントの階層構造ができていきます。
ひとつのコンポーネント内で変数の値(状態)が変更されたとき、その値によって動作を決めている別のコンポーネントのところまで変更した値を届けなければなりません。
別コンポーネントまで変更した値を届けるには、その値を親コンポーネントに渡して、そのまた親コンポーネントに渡して、を繰り返し、次は子コンポーネントに渡していくという手間のかかる作業が必要になります。
これを解決してくれるのがReduxで、簡単に説明すると空港の管制塔のような役割をもつ「Store」というものを使用します。
管制塔「Store」は、どこかのコンポートで変数の値(状態)が更新されたとき、その変更によって影響がでるコンポーネントに「おーい、あいつがコレに変わったぞ」と伝えてくれます。
これによって、値のバケツリレーをすることがなくなるため、変数の値の管理、つまり状態管理がしやすくなります。