• abinbev
  • financial times
  • blockchain
  • the trainline

Next React, Redux, GraphQL Courses

React, Redux, GraphQL Training

On completion of the course each student will:

  • Understand the core principles and libraries of the React ecosystem: react, react-router, redux, react-redux, redux-saga, react-apollo
  • Be able to develop and test complex and reliable React applications: enzyme, chai, mocha, sinon, jsdom
  • Comprehend the best practices for front-end JavaScript: functional programming, es6, webpack
  • Understand the best practices and patterns for building layouts: material-ui, react-bootstrap


Day 1. 10 hours: react fundamentals

  • Thinking in React
    • The Imperative to Declarative Shift
    • Everything is a component
  • What is React made up of
    • Props vs. State
    • One way data binding
    • Components with and without state. Classes vs. Functions
    • Developer tools
  • Virtual DOM and JSX
    • React Components, Elements, and Instances
    • JSX and React.createElement
  • Forms management in React
    • Controlled Components vs. Uncontrolled Components
  • Component lifecycle
  • Data management
    • Presentational Components vs. Container Components
    • Data fetching
  • React Router
    • Main components: Router, Route, IndexRoute
    • Authentication
    • Implement react-router in a master-detail web application
  • Introduction to unit testing in React
  • Apps vs. Webs: react-bootstrap and material-ui
  • Improve the previous React app with React Router and data from a web service

Day 2. 10 hours: redux fundamentals

  • Day 1 recap: build a React app from scratch using React, React Router and data fetching
  • Thinking in Redux. What problem is Redux solving?
  • Intro to functional programming
    • Data and behaviour
    • Data in, data out
    • Mutations
    • Pure functions
  • Redux Principles
    • Store, Reducers, Actions
  • Build your own version of Redux using TDD
  • Architecting your React app with Redux
    • react-redux: Provider and Connect
    • Unique source of truth
    • Using react-router and react-redux together
    • Action creators
  • Refactor the app that you built in the morning to use Redux
  • Connecting Redux to the server
    • Fetching data from the server to Redux
    • Updating data from Redux to the server
  • Time travel in Redux using Redux DevTools

Day 3. 10 hours: advanced react & redux

  • Functional programming
    • Composing functions
    • Currying, thunks and higher-order functions
  • Advanced Redux:
    • Introducing the Redux middleware
    • Exercise, build your own Redux middleware
    • Thunks. Actions that dispatch actions
  • Redux-Saga:
    • What is the Saga pattern
    • How is Redux-Saga implemented: ES6 generators
    • Refactor an app to implement redux-saga instead of redux-thunk and redux-promise
    • Unit testing made easy with Redux-Saga
  • Advanced React patterns: Reuse functionality across components
    • Higher-Order Components (HOCs)
    • Declarative composition using the Render Callback (AKA function as children)
  • Going isomorphic/ Universal with React
    • Nodejs + React + React Router
    • Isomorphic/ Universal Redux. When and How

Day 4. 10 hours: advanced react, graphql

  • Testing React and Redux
    • Mocking (Spy, Stub), Assertions, Snapshots
    • Shallow, Mount
    • Testing Components, Higher-Order Components, Connected Containers
    • Actions, Reducers
    • Code Coverage
  • Performance and Rendering Optimizations (quantified with numbers)
  • Advanced React patterns II: Create more reusable components
    • Compound Components, dynamically flow data between components
    • Patterns and use cases using "context"
  • GraphQL
    • GraphQL: Query, Mutation, Fragment
    • Relay vs. Apollo
    • Relay connections
  • GraphQL exercise: Integrate Apollo in a React & Redux app
    • Connect an Apollo client to a GraphQL server
    • Implement infinite scrolling in a React app using Apollo on the client-side and a Relay connection on the server-side
    • Update the state of your React app using mutations

A day in our training

Live coding

Developers will be introduced to new concepts with presentations and also live examples. With live coding we can enhance interactions between trainees and instructors and provide tailor-made examples to trainees’ queries.

Pair Programming

By working in pairs developers have to explain to their partners what they do and how, rather than just doing it. Explaining is a great way to learn and to make sure concepts are clear. Pair programming also increases motivation and productivity.


Our experienced instructors will give developers individual feedback whilst developers are coding. Instructors will guide and mentor them to think of the best way to solve a given problem. Groups of 10 developers for 1 instructor on average.


We are strong believers in learning by doing, and so we want developers to code as much as possible, so they can make mistakes in a safe environment. You will have time to practise everything we explain during the training.

Do you have any questions about our training?

Ask us hello@reactjs.academy

In order to participate in our intensive React training you need to know HTML, CSS and at least one programming language (like Java, .NET, PHP, JavaScript, etc) and web development.

An interview will take place to attend the training. Attendees need to have a minimum skill level so we can maximise the learning.

Why should you invest in JavaScript training?
Read why »

Why invest in JS training

Learn React and Redux in our community

Do you want to learn React but you cannot afford our courses even with our scholarships? If you are not in a hurry to learn React, you can learn it for free in our community by attending our public workshops.

Visit the community

More info at hello@reactjs.academy

Contact now

What our trainees say about our bootcamp

Next React Redux training in London

See Next training in London