From the docs: [init, the 3d argument] lets you extract the logic for calculating the initial state outside the reducer. This is also handy for resetting the state later in response to an action. And the code: Why would I do that over reusing a constant initialState? Looks less verbose to me. Answer EDIT july 2020: React documentation has now