Instead of saying downsides we can say that there are few compromises of using Redux over Flux. Those are as follows:
We will need to learn to avoid mutations: Flux is un-opinionated about mutating data, but Redux doesn’t like mutations and many packages complementary to Redux assume we never mutate the state. We can enforce this with dev-only packages like
redux-immutable-state-invariant, Immutable.js, or instructing our team to write non-mutating code.
- We’re going to have to carefully pick our packages: While Flux explicitly doesn’t try to solve problems such as undo/redo, persistence, or forms, Redux has extension points such as middleware and store enhancers, and it has spawned a rich ecosystem.
- There is no nice Flow integration yet: Flux currently lets us do very impressive static type checks which Redux doesn’t support yet.