Curated tutorial and resource links I've collected on React, Redux, ES6, and more, meant to be a collection of high-quality articles and resources for someone who wants to learn about the React-Redux ecosystem, as well as a source for quality information on advanced topics and techniques. Not quite "awesome", but hopefully useful as a starting point I can give to others. Suggestions welcome.
Another important resource is the Reactiflux community on Discord, which has chat channels dedicated to discussion of React, Redux, and other related technologies. There's always a number of people hanging out and answering questions, and it's a great place to ask questions and learn. The invite link is at https://www.reactiflux.com.
You might also want to check out my categorized list of Redux-related addons, libraries, and utilities, at Redux Ecosystem Links. Also see Community Resources for links to other links lists, podcasts, and email newsletters. Finally, I also keep a dev blog at blog.isquaredsoftware.com, where I write about React, Redux, Webpack, and more.
Javascript Package Managers 101 An overview of what packages and package managers are, some related terms, and how these tools work.
Suggested Learning Approaches
A Study Plan to Cure Javascript Fatigue The author of the "State of JS 2016" survey gives an excellent step-by-step study plan to use when learning the Javascript ecosystem.
Grab Front-End Study Guide An excellent guide to learning front-end technologies, based on "A Study Plan to Cure Javascript Fatigue". Includes descriptions of each topic, links to learning resources, and estimates for how much time to spend on each topic.
React How-To Pete Hunt, one of React's creators, gives a high-level suggested order to use when learning React-related technologies (React, NPM, bundlers, ES6, routing, and Flux/Redux)
Tips to learn React + Redux An extensive and excellent list of suggestions to follow when learning and using React and Redux. Tips include when to use different component patterns, when to bring in a state management library, Redux state structuring, unit testing, and much more.
Eloquent Javascript A full online book teaching Javascript from the ground up. Very recommended.
You Don't Know Javascript An online book series intended to teach all aspects of Javascript, including the "tougher" parts.
Exploring Javascript Multiple free online books from Dr. Axel Rauschmayer. "Speaking Javascript" covers all of Javascript through ES5; "Exploring ES6" covers ES6 in depth; and other books look at versions of Javascript after ES6 and how to set up an ES6+ development environment.
Create-React-App The official project creation tool from the React team. Allows you to set up a new React project, with no configuration work required.
Simple React Development in 2017 An excellent set of instructions for setting up a React project with minimal fuss and effort needed. Includes links to some useful resources, and info on deploying the app to production.
Modern Web Development with React and Redux An up-to-date HTML slideshow that introduces React and Redux, discusses why they help make applications easier to write via declarative code and predictable data flow, and demonstrates their basic concepts and syntax. Includes several interactive React component examples.
Learn Raw React A ground-up React tutorial that leaves out any other related "modern" technologies, Very recommended if you want to skip the buzzwords and acronyms.
30 Days of React A tutorial series that walks you through how to use React, from the ground up, in 30 bite-size articles covering everything from "What is React?" to data management to testing and deployment.
Data Flow: “State” and “Props”
A Visual Guide to State in React Describes what "state" is, what kinds of data should be included into React state, and how state flow relates to component updates.
ReactJS: Props vs State Explains that "props" are data passed in to a component, while "state" is data managed inside a component.
Presentational and Container Components Dan Abramov's foundational article on classifying components based on intent and behavior. A must-read for anyone using React.
Mixins Considered Harmful Dan Abramov explains why the React team discourages use of mixins, and prefers a pattern called “Higher Order Components” instead
Components, React, and Flux A fantastic HTML slideshow that discusses how to organize code as reusable components, and the basic concepts and benefits of a Flux unidirectional architecture
Reactive, Component-Based UIs Another fantastic HTML slideshow describing the three principles of React: "functional over OOP", "stateless over stateful", "clarity over brevity" (use arrow keys to advance slides)
Pros and Cons of Using Immutability With React Excellent description of what immutability is, how to use use these concepts with React, and pros and cons of managing data immutably. While the title refers to React, most of the writing just deals with plain Javascript concepts.
Redux Docs: Structuring Reducers - Immutable Update Patterns Useful examples for doing proper immutable updates, including common mistakes, proper updates of nested data, updates for arrays, and more. (Helpful for Redux, but not Redux-specific.)
Functional Programming
The Little Idea of Functional Programming Describes the three basic principles of FP: "data in/data out", "code as data", and "function composition" all the way down, and demonstrates transforming some data. Has some very helpful graphics and illustrations.
React.js Forms: Controlled Components An excellent article that describes the concept of controlled components, and demonstrates examples of how to interact with different types of form inputs
Styling in React An introduction to using React's built-in inline styling abilities
How To Style React An excellent overview of the four major ways to deal with styles in React, and what the various tools are. Includes a decision tree to help you decide what to use.
Redux
Getting Started
Redux Docs The official Redux documentation. Contains an excellent tutorial that walks you through “here’s what you want to do, and how we came up with this”, as well as recipes for more advanced topics. Be sure to read through the FAQ for answers to common questions and links to further information.
Redux: From Twitter Hype to Production An extremely well-produced slideshow that visually steps through core Redux concepts, usage with React, project organization, and side effects with thunks and sagas. Has some absolutely fantastic animated diagrams demonstrating how data flows through a React+Redux architecture.
Leveling Up with React: Redux A very well-written introduction to Redux and its related concepts, with some useful cartoon-ish diagrams.
Connect.js explained A very simplified version of React Redux's connect() function that illustrates the basic implementation
Redux Docs: Structuring Reducers Comprehensive information on writing reducers and structuring data, covering reducer composition, use of combineReducers, normalizing data, proper immutable updating, and more.
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.
Selectors and Normalization
Querying a Redux Store A look at best practices for organizing and storing data in Redux, including normalizing data and use of selector functions.
Normalizing Redux Stores for Maximum Code Reuse Thoughts on how normalized Redux stores enable some useful data handling approaches, with examples of using selector functions to denormalize hierarchical data.
SurviveJS - Webpack A full book online book that covers setting up Webpack for both development and production. Also touches topics such as ESLint and npm.
Configuration and Concepts
Webpack: The Confusing Parts A great simplification and breakdown of the different pieces that make up a Webpack configuration: dev vs prod, CLI vs dev-server, the "entry" option, the "output" option / "path" vs "publicPath", loaders and configuration, Babel, plugins, and path resolving.
Angular + Webpack < 3 A long presentation that describes Webpack and its core concepts in depth. A few parts are Angular-centric, but still an extremely clear and informative set of slides. Covers topics like the "entry" and "output" options, "loaders", and "plugins".
Advanced Webpack An in-depth presentation that walks through Webpack concepts, terms, configuration, and usage. Covers a number of advanced topics, and very worth reading.
Universal React Redux Boilerplate A universal React/Redux boilerplate with sensible defaults. Out of the box, thisboilerplate comes with: Server-side rendering with Express Code splitting with dynamic
React-Redux-Enterprise A React-Redux boilerplate for enterprise web applications. Before you start with this boilerplate, please take a few minutes to read this article and see if you really need this
Live redux-react-starter This repository contains the minimal app to get started with redux, react, hot-reloading, async function and some other great stuffs. How to yarn 0.18+ must be present on your
React Redux Saucepan A minimal Universal React redux JS stack using Flow, with hot reloading, linting and server-side rendering. This is a universal react project. It provides server-side rendering an
React-Redux-Flask Boilerplate application for a Flask JWT Backend and a React/Redux Front-End with Material UI. Python 2.7+ or 3.x Pytest Heroku Flask React Redux React-Router 2.0 React-Router-Redux B