Table of Contents Read Me Introduction Motivation Core Concepts Three Principles Prior Art Ecosystem Examples Basics Actions Reducers Store Data Flow Usage with React Example: Todo List Advanced Async Actions Async Flow Middleware Usage with React Router Example: Reddit API Next Steps Recipes Migrating to Redux Using Object Spread Operator Reducing Boilerplate Server Rendering Writing Tests Computing Derived Data Implementing Undo History Isolating Subapps Structuring Reducers Prerequisite Concepts Basic Reducer Structure Splitting Reducer Logic Refactoring Reducers Example Using combineReducers Beyond combineReducers Normalizing State Shape Updating Normalized Data Reusing Reducer Logic Immutable Update Patterns Initializing State Using Immutable.JS with Redux FAQ General Reducers Organizing State Store Setup Actions Immutable Data Code Structure Performance React Redux Miscellaneous Troubleshooting Glossary API Reference createStore Store combineReducers applyMiddleware bindActionCreators compose Change Log Patrons Feedback