Replacing state in Redux reducers: a few approaches

There are a few basic strategies for managing state in Redux, and which ones you use depend on the level of language support an other APIs you have at your disposal. Here are four approaches: using a collections API, Object.assign, Immutable.js and the ES spread operators.