Skip to main content

Learning Resources

The Redux docs are intended to teach the basic concepts of Redux, as well as explain key concepts for use in real-world applications. However, the docs can't cover everything. Happily, there are many other great resources available for learning Redux. We encourage you to check them out. Many of them cover topics that are beyond the scope of the docs, or describe the same topics in other ways that may work better for your learning style.

This page includes our recommendations for some of the best external resources available to learn Redux. For an additional extensive list of tutorials, articles, and other resources on React, Redux, Javascript, and related topics, see the React/Redux Links list.

Start with the tutorials

If you're new to Redux, start with our own tutorials first. The Redux Essentials tutorial teaches how to build real apps with Redux Toolkit and React-Redux, and the Redux Fundamentals tutorial explains how Redux works from the ground up. We also have a page of recommended videos.

Several of the articles below were written before Redux Toolkit existed. Where that's the case, we've noted it. The concepts still apply, but the code samples use older patterns.

Basic Introductions

Tutorials that teach the basic concepts of Redux and how to use it

Using Redux With React

Explanations of the React-Redux bindings library

TypeScript

Using Redux with TypeScript

Data Fetching with RTK Query

Fetching and caching server data with the RTK Query API in Redux Toolkit

Redux DevTools

  • Redux DevTools
    https://github.com/reduxjs/redux-devtools
    The Redux DevTools browser extension lets you inspect every dispatched action and state change, and jump back and forth between states. configureStore enables it automatically in development. The repo includes the extension, the standalone @redux-devtools/cli for React Native and other environments, and the underlying DevTools components.

Project-Based Tutorials

Tutorials that teach Redux concepts by building projects, including larger "real-world"-type applications

  • Practical Redux
    https://blog.isquaredsoftware.com/2016/10/practical-redux-part-0-introduction/
    https://blog.isquaredsoftware.com/series/practical-redux/
    A series of posts intended to demonstrate a number of specific Redux techniques by building a sample application, based on the MekHQ application for managing Battletech campaigns. Written by Redux co-maintainer Mark Erikson. Covers topics like managing relational data, connecting multiple components and lists, complex reducer logic for features, handling forms, showing modal dialogs, and much more. (Note: this is an older series, and today we recommend newer patterns for writing Redux code. However, many of the principles in this series are still valuable.)

Redux Implementation

Explanations of how Redux works internally, by writing miniature reimplementations

Reducers

Articles discussing ways to write reducer functions

  • Structuring Reducers
    Structuring Reducers
    Our own guide to splitting, combining, and reusing reducer logic, normalizing state, and immutable update patterns. Redux Toolkit's createSlice applies these same patterns.

  • Taking Advantage of combineReducers
    https://randycoulman.com/blog/2016/11/22/taking-advantage-of-combinereducers/
    Examples of using combineReducers multiple times to produce a state tree, and some thoughts on tradeoffs in various approaches to reducer logic. The same ideas apply to the reducer object passed to configureStore.

Selectors

Explanations of how and why to use selector functions to read values from state

  • Deriving Data with Selectors
    Deriving Data with Selectors
    Our own guide to writing selectors, memoizing them with Reselect, and using them with React-Redux.

  • Reselect docs
    https://reselect.js.org/
    The official Reselect docs, including the createSelector API, memoization options, and the development-mode checks that catch common selector mistakes.

  • Idiomatic Redux: Using Reselect Selectors for Encapsulation and Performance
    https://blog.isquaredsoftware.com/2017/12/idiomatic-redux-using-reselect-selectors/
    A complete guide to why you should use selector functions with Redux, how to use the Reselect library to write optimized selectors, and advanced tips for improving performance. (Note: the code samples use connect, but the reasoning applies equally to useSelector.)

Normalization

How to structure the Redux store like a database for best performance

Middleware

Explanations and examples of how middleware work and how to write them

Side Effects

Handling async behavior in Redux

Thinking in Redux

Deeper looks at how Redux is meant to be used, and why it works the way it does

Redux Architecture

Patterns and practices for structuring larger Redux applications

Apps and Examples

Redux Docs Translations

More Resources

  • React-Redux Links is a curated list of high-quality articles, tutorials, and related content for React, Redux, ES2015, and more.
  • Awesome Redux is an extensive list of Redux-related repositories.
  • DEV Community is a place to share Redux projects, articles and tutorials as well as start discussions and ask for feedback on Redux-related topics. Developers of all skill-levels are welcome to take part.