JavaScript
Introduction to React and Redux (REA112)
Course Length: 3 days
This 3-day Introduction to React training class gets students up to speed quickly with React.

Register or Request Training
- Private class for your team
- Live expert instructor
- Online or on‑location
- Customizable agenda
- Proposal turnaround within 1–2 business days
Course Overview
This 3-day Introduction to React training class gets students up to speed quickly with React.
Course Benefits
Delivery Methods
Course Outline
- Setup
- Verifying Node.js and either NPM or yarn
- Verifying class libraries
- Verifying class files
- IDE (WebStorm or Visual Studio Code preferred)
- Introduction to React
- What problem(s) does React solve?
- Traditional, pre-JS web applications
- Late-model, MV* and JS web applications
- React's solutions
- Single-page apps
- View libraries
- Helper libraries
- React development environment
- Simplicity: create-react-app
- Build-your-own: an overview
- Hello world
- Your first React component
- Using React within a page
- Making some basic changes
- React and JSX
- What problem(s) does React solve?
- Components
- Two types of components
- Functional components
- Class-based components
- Why use one or the other?
- Testing basic components
- Testing libraries: Enzyme vs Testing Library (sic)
- Jest
- Testing with Testing Library
- Props and state
- Passing in properties
- Limitations of properties
- Using state and the useState() hook
- When to use state, when to use props
- Testing state and prop changes
- Event handling
- React event handling
- Synthetic events
- React vs DOM event handling
- Testing events
- Children
- Components within components
- Known children and unknown children
- Testing child components
- Parent-child component communication
- Communication from parent to child
- Communication from child to parent
- Container vs presentational components
- Two types of components
- React Component Lifecycle
- Lifecycle overview
- Startup and mounting
- Rendering
- Updating
- Unmounting
- Using useEffect() for lifecycle methods
- Run once
- Run every render
- Run on specific changes / updates
- Lifecycle methods in tests
- Error handling and error boundaries
- Lifecycle overview
- Intermediate component usage
- PropTypes
- Typing and React
- Using PropTypes
- PropTypes in production
- PropTypes vs TypeScript
- Asynchronous data
- When should asynchronous fetching be done?
- What challenges does async offer?
- Asynchronous best practices
- Testing against async fetches
- Lists of data
- Iterating over a list
- The key property
- Sorting data
- Testing component interactions
- PropTypes
- Forms
- Controlled vs uncontrolled components
- What does React know about your form field?
- Does React control your form field?
- When does React find out about changes to your form field?
- Form field types
- Controlling a text field
- ther form fields
- Getting data out of a form
- Working with form data in tests
- Controlled vs uncontrolled components
- Introduction to Redux
- What problems does Redux solve?
- How does it solve them?
- Basic Redux pattern
- Store
- Reducers
- Actions
- A basic Redux example
- What problems does Redux solve?
- Modern Redux with the Redux Toolkit
- What is the Redux toolkit
- What does it provide?
- The ducks pattern
- Testing Redux
- React and Redux
- Plugging into React
- State as props
- Events as dispatch
- Introducing higher-order components
- Turning our standalone Redux program into a component
- Middleware
- Provided by the toolkit
- ther middleware
- Building a real-world React-Redux component
- Testing React-Redux components
- Higher-order components in detail
- What do higher-order components do?
- Why would I use a higher-order component?
- Plugging into React
- Asynchronous Redux
- The difficulties of asynchronous Redux
- Asynchronous middleware
- Depending on your needs, we can use either thunks, sagas, or survey both techniques for asynchronous interactions
- Dispatching async actions
- Catching results
- Handling errors
- Testing asynchronous Redux
Class Materials
Each student receives a comprehensive set of materials, including course notes and all class examples.
Class Prerequisites
Experience in the following is required for this JavaScript class:
- 1-2 years of JavaScript experience.
- Advanced understanding of JavaScript, including prototypes and functions as first class citizens.
Have questions about this course?
We can help with curriculum details, delivery options, pricing, or anything else. Reach out and we’ll point you in the right direction.
