Search our courses
Training

Enterprise React Apps, and simply apps that grow as requirements evolve, need to consider how to manage UI and application state. This task grows in complexity with app size. This React Advanced training course explores state management in React apps, and how you can manage that state effectively. We look at two differing (and both popular) approaches, building apps that use each approach as we go. Time permitting, we will explore further concepts in React too, including styling our components, server-side rendering (SSR), and testing components.

 

Objectives

On completion of this course you will:

  •     Understand state management issues and how to manage them effectively
  •     Know why we use immutability in managing state
  •     Understand exactly how Redux works and be able to use it in an application
  •     Have built applications using React and Redux
  •     Have built custom middleware for Redux
  •     Have used one or more approaches in managing asynchronous operations
  •     Understand how ES6 generators can be utilized for asynchrony

React Advanced

Price €995.00

Course Code

GTIT42

Duration

2 Days

Course Fee

POA

Accreditation

N/A

Target Audience

  • Web Developers

Attendee Requirements

  • Attendees must have experience in developing components and apps using React. The React Fundamentals class provides a suitable background.

Expand all

Course Description

Enterprise React Apps, and simply apps that grow as requirements evolve, need to consider how to manage UI and application state. This task grows in complexity with app size. This React Advanced training course explores state management in React apps, and how you can manage that state effectively. We look at two differing (and both popular) approaches, building apps that use each approach as we go. Time permitting, we will explore further concepts in React too, including styling our components, server-side rendering (SSR), and testing components.

 

Objectives

On completion of this course you will:

  •     Understand state management issues and how to manage them effectively
  •     Know why we use immutability in managing state
  •     Understand exactly how Redux works and be able to use it in an application
  •     Have built applications using React and Redux
  •     Have built custom middleware for Redux
  •     Have used one or more approaches in managing asynchronous operations
  •     Understand how ES6 generators can be utilized for asynchrony
Course Outline

The Flux Pattern

  •     Flux Overview
  •     Dispatcher, Action Creators, Actions and Stores
  •     Flux Components/Views
  •     Flux Implementations

State Management

  •     What’s State Management
  •     The Problems of Inconsistent State
  •     UI State and Application State
  •     State Management Approaches – Flux, MobX & Redux

The Flux Pattern

  •     Flux Overview
  •     Development Setup
  •     Dispatchers
  •     Flux Action Creators, Actions and Stores
  •     Flux Components/Views
  •     Flux Implementations
  •     A Flux Example

Flux & Redux Overview

  •     Single Page Web Apps
  •     Where does Redux Fit?
  •     Redux
  •     Introducing Redux
  •     Why Redux?
  •     Binding Redux to React

Understanding the Redux Architecture

  •     Redux Architecture
  •     Redux Concepts
  •     Redux compared to Flux
  •     A Single Immutable State Tree
  •     The Flow of Data in a Redux App

The State

  •     What do we put in state?
  •     The State Object
  •     A State Object
  •     A More Complex State Object Example

Actions

  •     What’s an Action?
  •     What should be an Action?
  •     Defining an Action
  •     Aside: Using Flux Standard Actions
  •     Action Types: Strings or String Constants?
  •     Using String Constants
  •     Dispatching Actions

Action Creators

  •     Actions
  •     Action Creators
  •     Writing Action Creators

Creating Reducer Functions

  •     Reducers
  •     Redux Reducers
  •     Reducers are Pure Functions
  •     Actions vs Reducers

Immutability

  •     You’re already using Immutability
  •     Immutable Data in JavaScript
  •     Why Immutability?
  •     Predictability
  •     Solving the Predictability Problem
  •     Pure Function
  •     Immutability in Redux

Immutable Programming

  •     Writing Pure Functions to Update State
  •     Appending to an Array
  •     Other Array Operations
  •     ‘Updating’ an Object
  •     Other Object Operations

Writing Reducers

  •     Another Example
  •     Conventions when Writing Reducers
  •     Remember — Pure Functions!

The Redux Store

  •     The Store
  •     Creating the Store
  •     Store Methods
  •     Redux Store

Integrating with React

  •     React’s Needs
  •     Recap: Container and Presentational Components
  •     Container Components with Redux
  •     Data Flow using react-redux
  •     Installing React Redux
  •     The react-redux API
  •     Implementing Container Components
  •     Using connect()
  •     Defining mapStateToProps()
  •     Defining mapDispatchToProps()

Middleware Overview

  •     What’s Middleware?
  •     Middleware is Composable

Creating Custom Middleware

  •     The Middleware Function Signature
  •     A Simple Middleware
  •     Using Middleware
  •     Other Kinds of Actions

React-Thunk and Asynchronous Actions

  •     Why Thunk?
  •     Redux Thunk
  •     Installing Redux Thunk
  •     Asynchronous Action Creators
  •     Redux Thunk Flow

Asynchrony and Server Communications

  •     Redux Thunk Flow to Server and Back
  •     Server-related Actions
  •     Choosing an HTTP API
  •     Contacting a Server
  •     A fetch API Example

Asynchrony Alternative: Redux Saga

  •     Saga
  •     Redux Saga
  •     Benefits of Sagas
  •     ES6 Generators
  •     Generators and Redux Saga
  •     Making Server Requests and Writing Async Flows
  •     Redux Saga Resources

Further React Concepts

Styling Components and Apps

  •     CSS integration options and libraries
  •     Using React with Bootstrap

Server-Side Rendering

  •     Why render server-side?
  •     The server-side component lifecycle
  •     Rendering and routing server-side

Testing React Components using Jest and/or Enzyme

  •     Setting up a test environment
  •     Using Testutils
  •     Shallow Rendering, DOM Rendering, and Rendering Static Markup
  •     When to choose each approach
  •     Testing with Shallow Rendering
  •     Testing via Rendering to a DOM
Learning Path
Ways to Attend
  • Attend a public course, if there is one available. Please check our Schedule, or Register Your Interest in joining a course in your area.
  • Private onsite Team training also available, please Contact Us to discuss. We can customise this course to suit your business requirements.

Technical ICT learning & mentoring services

Private Team Training

Our instructors are specialist consultants with vast real world experience and expertise allowing them to design and deliver client-focused courses for your organisation.

Learn more about our Private Team Training

What Our Clients Say

"For a senior technical person, the best of this course is setting a structured and methodical approach for evaluation techniques we already use. It would be also very beneficial to senior managers (100+ reports). There is a huge hype on Gen AI at the moment, and this course will help them see the potential, current limitations and pitfalls of this technology".

 

Critical Thinking with AI for tech professionals

In-person course October '25

 


“It was very positive. This course was 4 days but covered a semester worth of work if it was done in college. The labs were relevant and delegates were provided the lab/coursebook for further study and practice after the course finished. GuruTeam's course was excellent and provides a deeper understanding of the architecture and how it all works. The hands-on aspect was very helpful as it helped solidify the concepts as I went along."

 

Kubernetes Administration Certification - GTLFK

Live Online September 2024

 

 

 

“The Instructor was very knowledgeable, laid back and very approachable during the course. The environment setup was second to none.  Very easy to jump in and follow along with minimal pre-req setup."

Kubernetes Administration Certification - GTLFK

Onsite May 2024

 

“The experience was complete for me. I like how the training was sequenced - the slides organization, the examples and explanations and then the exercises. Time for exercises and support by the Instructor was great plus answering the questions and going out for answers and coming back with examples as brilliant. I loved how much I refreshed and how I learned and got inspired to improve stuff at work.”

 

Docker - GTDK1

Live Online December 2024

 

“Great instructor, who encouraged active participation. The breakout groups and exercises kept the group engaged and the content relevant to our own products”.

 

Site Reliability Engineering Foundation - GTDSRE

Live Online January 2022

 

 

 

"Intelligence is the ability to avoid doing work, yet
getting the work done"

Linus Torvalds, creator of Linux and GIT

Technical ICT learning & mentoring services

About GuruTeam

GuruTeam is a high-level ICT Learning, Mentoring and Consultancy services company. We specialise in delivering instructor-led on and off-site training in Blockchain, Linux, Cloud, Big Data, DevOps, Kubernetes, Agile, Software & Web Development technologies. View our Testimonials

Download our eBrochure
Our Accreditation Partners
  •  
  •  
  •  

 

Upcoming Courses

Kubernetes Admin

Dates to be confirmed

 Live Online
 GMT +01:00  09:30 - 17:00 hrs

This Kubernetes Administration
Certification training course is
suitable for anyone who wants
to learn  the skills necessary to build and administer a Kubernetes cluster.

 

LEARN MORE

RUST PROGRAMMING INTRODUCTION

Dates to be confirmed

 Live Online
 GMT +01:00  09:30 - 17:00 hrs

This Rust Programming Introduction training course will help you understand what Rust applications look like, how to write Rust applications properly, and how to get the most out of the language and its libraries.
 

Learn More

NEW FAST TRACK PYTHON SERIES

Dates to be confirmed

Live Online
GMT +01.00  09:30 - 17:00 hrs

Hit the ground running.....
GuruTeam’s new Python Fast Track series Instructor-led live online training
designed & delivered by industry experts.

Python Fast Track I Comprehensive
Python Fast Track II Expert
Python Fast Track III for Data Science

 

 

 

Learn More

GO PROGRAMMING INTRODUCTION

 Dates to be confirmed
  

Live Online
GMT +01:00  09:30 - 17:00 hrs

This Go Programming Introduction training course will help you understand how Go works, and immediately be more productive. If you are building a team using Go, this will be a great opportunity to get your team on the same page and speaking the same language.

Learn More

Newsletter

Stay up to date, receive updates on scheduled dates, new courses, offers, and events.

Subscribe to our Newsletter