TP3346
Advanced React Training
In this hands-on React course, attendees learn the advanced features of React, including custom hooks, useReducer, events, sub-routes, and more, with an experienced instructor to guide you.
Course Details
Duration
2 days
Prerequisites
A very strong grasp of React is essential to understand the lectures and perform the labs. Expert-level JavaScript and very solid HTML5 and CSS knowledge is also needed. Please ask about our 3-day React Fundamentals course which will prepare you for the high-level of React fluency needed for this course.
Target Audience
Experienced React developers who want to be take their React skills to the next level.
Skills Gained
- Write React components that optimize the virtual DOM
- Make the most of TypeScript with React apps for type safety
- Use prop types instead of TypeScript
- Describe all the built-in hooks
- Write their own custom hooks
- Speed up apps with useMemo and useCallbak
- Solve complex state with useReducer
- Bypass prop drilling with useContext
- Respond to all events - even those React can't handle
- Create navigation routes with the newest router
- Read route parameters and query strings
- Construct the fastest hyperlinks
- Author sub-routes
- Optimize loading with sub-routes
- Make React components conform to a11y and a18n needs
Course Outline
- Introduction
- Understand the virtual DOM
- Why the vDOM?
- Reconciliation
- How it compares
- How to optimize your code
- The Ivy engine
- How hooks fit in
- Why one-way data flow
- Transpiling, bundling, minifying with webpack, and Rollup
- TypeScript in React
- JavaScript vs Java (et al.)
- What TypeScript really does
- TS does not provide strong typing
- Interfaces vs types
- Embracing functional vs OOP
- Generics in React
- Discriminated unions
- CSS Properties
- Event object
- 3rd party libraries with no TS support
- Proptypes
- Built-in prop type checking
- Making props optional
- Setting prop types
- Speeding up React with lazy loading
- The best strategy
- The lazy method
- The Suspense component
- Fallbacks
- Code splitting
- Error boundaries
- Hooks overview
- All built-in hooks
- When to use the obscure ones
- useContext for code clarity
- Why prop drilling is evil
- Create context
- Reading context
- Updating context
- Deep dive into useEffect
- How useEffect works
- Simulating lifecycle events
- Exhausting dependencies
- useEffect belongs with its own render
- Speeding your app with useMemo and useCallback
- What is the difference?
- Optimizing components with useCallback
- Optimizing with useMemo
- Why not just useMemo everything?
- Fixing complex state - useReducer
- What is useReducer?
- Woot! No need for Redux, right?
- How to optimize useReducer
- When not to useReducer
- How to write a custom hook
- First - why?
- The rules
- How to write the code
- How to best use a custom hook
- Advanced event handling
- React's synthetic events
- How to handle events that React refuses to
- Low-level power of events
- The need to de-register events
- Let's create an infinite scroll component
- Routing
- Overview of the newest React Router
- Creating baseline routes
- Route parameters & query strings
- What's the difference?
- REST and parameters
- Creating route parameters
- Reading route parameters
- Reading query strings
- Efficient hyperlinks
- Why not use <a>?
- How to do it the modern way
- Relative vs absolute paths
- Subroutes
- Routes within routes
- How to create relative routes
- How this simplifies your complex navigation
- 11y (time permitting)
- The case for a11y
- Specs, laws, and requirements
- React-specific handling
- 18n (time-permitting)
- Globalization vs. localization
- Detecting locale
- How to do it in React
- Conclusion