ReactJS

The main idea of React is this; if we rerender instead of mutate when something changes, our components and application as a whole becomes much easier to construct and reason about. There is of course a performance penalty to this, but React mitigates that through an efficient diffing engine, resulting in only the necessary changes actually being made.

Born from the functional approach of React, Redux is small library that handles your app state. By having just a single data store, and one-way paths through which that data can be mutated, a surprisingly large part of your code will revert to pure, stateless functions. The end result is less complexity, fewer bugs and a much clearer map of how everything fits together. 

Together with React Router, a navigation solution standing on the shoulders of the much-reverred router in Ember, this trinity of libraries makes for a very potent cocktail rivalling the established frameworks. Throughout this course you will not only learn how to use these libraries, but also gain an understanding of the ideas behind them and why they are so successful. 

Audience

Frontend developers. People who want to build full-featured apps on the web stack using React. 

Prerequisites

A solid background in HTML, CSS, and JavaScript, corresponding to our courses *HTML5*, *CSS*, and *Modern JavaScript*. 

Outline

  • Introduction

    • The nature of JavaScript
    • Functional programming
    • What is React?
    • Developing environment

     

    React, level 1

    • Rendering components
    • Combining components
    • Communicating between components

     

    Redux, level 1

    • Flux and Redux
    • Reducers
    • Store

     

    Marrying Redux and React

    • Connecting app state
    • Connecting action creators
  • React-Router

    • Defining routes
    • Linking and dynamic navigation
    • Connecting routes to Redux

     

    React, level 2

    • Class syntax
    • Component state
    • Lifecycle hooks
    • Mixins

     

    Redux, level 2

    • Composite reducers
    • Middleware
    • Async action creators
    • Redux devtools

     

    The bigger picture

    • Server-side rendering
    • Rendering to non-DOM targets
    • Unit-testing React code
    • In the ecosyste

Other relevant courses