🟨

Redux の reducer はなぜ reducer と呼ばれるの?

に公開

Reduxの「reducer(リデューサー)」という名前は、関数型プログラミングや配列操作で使われる「reduce(畳み込み・集約)」という概念に由来しています。

JavaScriptの Array.prototype.reduce のように、reducerは「現在の状態(state)」と「アクション(action)」を受け取り、それをもとに新しい状態を返す純粋関数です。配列のreduceが「一連の値を1つの値にまとめる」のと同様に、Reduxのreducerも「一連のアクションの流れを通じて、状態を段階的に変化・集約していく」役割を果たします。

つまり、Reduxのreducerは「状態を変化させて集約していく関数」であり、その動作や型がJavaScriptのreduce関数とよく似ているため、この名前が使われています。

Discussion