React 19 & Modern Component Architecture
Fiber Reconciliation, Hooks, Actions, Suspense & the React Compiler
8 modules, 40 lessons: React 19 Foundations & JSX Compilation; Reconciliation Engine And The React Fiber; Component Lifecycle, Effects And Refs; State Sharing, Context And Composition; Custom Hooks And Behavioral Abstractions; React 19 Actions, Transitions And Async; Suspense, Streaming And Error Boundaries; Performance Optimization & React Compiler.
Intermediate · 2 hours · 40 lessons · 40 labs
Who it is for
Intermediate level.
For developers who know TypeScript and the DOM and want to build React interfaces that stay fast and correct, and understand why React behaves as it does.
What you don't need yet:
- No React experience: you start from how JSX compiles
- You don't need Next.js or a server
- Nothing to install: runnable labs open in an online sandbox
What helps:
- TypeScript and modern JavaScript
- HTML and how the DOM works
Before you start:
- TypeScript and modern JavaScript (the TypeScript course covers all of it)
- HTML and the DOM (the Frontend course covers all of it)
Take first:
- Production TypeScript — Intermediate
- Frontend Architecture & Web Platform — Intermediate
Take next:
- Next.js 15 & Modern App Router Architecture — Intermediate
- Design Systems & Component Engineering — Advanced
Learning paths:
Nobody needs to know everything before they start. Each course builds on the one before, so a learning path takes you there step by step.
Labs
40 labs, 38 of them graded: you write the code, it runs, and graded labs check the result. The outline lists each lesson's labs.
What is free
Start free: First module free with an account. Pro: Every course, lab, handbook, practice exam and certificate.
- Pro monthly — $29 a month. Every course, lab, handbook, practice exam and certificate
- Pro yearly — $249 a year. Every course, lab, handbook, practice exam and certificate
Course outline
React 19 Foundations & JSX Compilation
- JSX Transpilation: createElement, JSX Runtime, React Elements (1 lab): You can explain how compilers transform JSX into React elements and inspect the resulting virtual element objects.
- Component Purity: Pure Functions, Idempotence And Side Effects (1 lab): You can write strictly pure React components that are idempotent and free from render-phase side effects.
- Props Contract: Immutability, Children, And Polymorphic Tags (1 lab): You can design strongly typed, immutable component interfaces using props, children composition, and polymorphic element tags.
- State with useState: Immutability And Asynchronous Batching (1 lab): You can manage component state immutably using useState and reason about React's asynchronous state snapshots and automatic batching.
- Complex State with useReducer: State Machines And Action Types (1 lab): You can manage complex, interdependent component state transitions using useReducer, discriminated action unions, and pure reducer functions.
Reconciliation Engine And The React Fiber
- Virtual DOM vs Real DOM: The Reconciliation Cost Model (1 lab): You can contrast Virtual DOM tree comparisons with real DOM layout costs and explain how React minimizes browser reflows.
- React Fiber Architecture: Work Units, Priority And Commits (1 lab): You can explain the React Fiber data structure, incremental time-sliced work loop, and double-buffering architecture.
- Keys In Depth: Identity Preservation And Identity Resetting (1 lab): You can use React keys to preserve component identity, reset state on demand, and avoid bugs caused by index keys.
- Diffing Algorithm: Element Type Shifts And Subtree Tear Down (1 lab): You can explain React diffing assumptions, demonstrate subtree destruction when element types change, and preserve state effectively.
- SyntheticEvent System: Event Delegation in Modern React (1 lab): You can explain how React SyntheticEvent normalizes cross-browser events and attaches handlers to the root container rather than individual DOM nodes.
Component Lifecycle, Effects And Refs
- useEffect Lifecycle: Mount, Dependencies, And Cleanup Phases (1 lab): You can synchronize components with external systems using useEffect, handle teardown and abort signals, and manage dependencies.
- Avoiding Effect Antipatterns: Derived State And Events (1 lab): You can identify when NOT to use useEffect, calculate derived values during render, and handle user events in event handlers.
- useLayoutEffect vs useEffect: Painting And Synchronous Reads (1 lab): You can contrast execution timing between useLayoutEffect and useEffect, measure DOM elements before paint, and prevent layout flicker.
- useRef Mechanics: DOM References And Mutable Persistent State (1 lab): You can use useRef to hold references to DOM nodes and store mutable instance variables across renders without triggering re-renders.
- useImperativeHandle: Controlled Ref Forwarding Boundaries (1 lab): You can use useImperativeHandle to expose a curated, type-safe imperative interface while encapsulating internal DOM nodes and implementation details.
State Sharing, Context And Composition
- Lifting State Up: Colocation, Ownership, And Data Flow (1 lab): You can determine the single source of truth for shared state, lift state to the closest common ancestor, and manage unidirectional data flow.
- useContext in Depth: Scoping, Consumer Subscription Costs (1 lab): You can create and consume React Context, scope providers locally, and mitigate consumer re-render costs using split contexts or memoization.
- Compound Components: Inversion of Control with Context (1 lab): You can implement the Compound Component pattern using Context to give consumers flexible layout control while maintaining shared internal state.
- Higher-Order Components And Render Props: Tradeoff Analysis (1 lab): You can compare HOCs and Render Props, analyze prop collision and wrapper hell tradeoffs, and migrate patterns to modern custom hooks.
- Slot Patterns And Headless UI Architecture in React (1 lab): You can design component slots using named props and implement Headless UI primitives that completely decouple state and accessibility from styles.
Custom Hooks And Behavioral Abstractions
- Rules of Hooks: Call Order, Hook Lists, And Fiber Storage (1 lab): You can explain why hooks rely on strict call order, how the Fiber linked list stores hook records, and how to avoid conditional hook violations.
- Custom Hook Composition: Encapsulating Reactive Logic (1 lab): You can compose multiple built-in hooks into clean, reusable custom hooks that encapsulate reactive state, effects, and business invariants.
- useSyncExternalStore: Tearing-Free Store Subscriptions (1 lab): You can subscribe React components to non-React state stores using useSyncExternalStore, preventing visual tearing during concurrent rendering.
- Creating Event Listener Hooks with Clean Teardown Logic (1 lab): You can implement a robust useEventListener custom hook that handles target switching, captures changing handler references, and guarantees clean teardown.
- useId: Generating Stable Accessible Form Element Identifiers (1 lab): You can use useId to generate stable, collision-free identifiers for ARIA attributes and form labels that match between server and client hydration.
React 19 Actions, Transitions And Async
- Concurrent Mode: Interruptible Work And Lane Priority (1 lab): You can explain how React Concurrent Mode uses Lane priority models to schedule, interrupt, and prioritize urgent user input over background work.
- useTransition: Non-Blocking State Updates for Fluid UI (1 lab): You can use useTransition to designate state transitions as non-blocking, handle isPending loading indicators, and keep typing inputs fluid.
- useActionState: Async Action Handlers And Pending States (1 lab): You can manage asynchronous form submissions and server actions using useActionState, handling pending states, returned data, and error states.
- useOptimistic: Instantaneous UI Updates with Rollback (1 lab): You can use useOptimistic to update the user interface immediately before server action completion, automatically reconciling or rolling back upon resolution.
- The use() Hook: Reading Promises And Context Directly (1 lab): You can read Promises and React Context conditionally using the use API, integrating directly with Suspense and Error Boundaries.
Suspense, Streaming And Error Boundaries
- Suspense Architecture: Promises, Fallbacks, And Co-ordination (1 lab): You can orchestrate concurrent component rendering with Suspense, understand promise throwing mechanics, and coordinate nested boundaries.
- Code-Splitting with React.lazy: Dynamic Imports And Chunks (1 lab): You can reduce initial JavaScript bundle sizes using React.lazy and dynamic ES module imports with Suspense loading fallbacks.
- Error Boundaries: componentDidCatch And Fallback UI Trees (1 lab): You can implement Error Boundaries using static getDerivedStateFromError and componentDidCatch to isolate subtree crashes and display graceful fallbacks.
- React Portals: Escaping Stacking Contexts for Modals (1 lab): You can render DOM elements into external container nodes using createPortal while preserving React event bubbling and context trees.
- Client-Side Data Fetching Architectures with Suspense (1 lab): You can contrast Fetch-on-Render with Render-as-You-Fetch architectures and implement cache-coordinated Suspense data fetching.
Performance Optimization & React Compiler
- Render Diagnostics: Profiling Re-Renders with React DevTools (1 lab): You can profile React re-renders, interpret DevTools flamegraphs and commit phases, and diagnose wasted rendering cycles.
- React.memo, useMemo, And useCallback: Optimization Costs (1 lab): You can apply React.memo, useMemo, and useCallback to preserve reference equality, quantify memoization overhead, and avoid premature optimization.
- The React Compiler: Automated Memoization Under The Hood (1 lab): You can explain how the React Compiler transforms component code into fine-grained memoization caches, eliminating manual useMemo and useCallback.
- Virtualization: Rendering Infinite Datasets Efficiently (1 lab): You can implement list virtualization concepts to render thousands of items efficiently by windowing only the visible viewport elements.
- Accessible Headless Primitives: ARIA, Focus, And Keyboard (1 lab): You can implement accessible headless component primitives with roving tabIndex, ARIA role mapping, and keyboard navigation.