React Academy icon

React Academy

JSXFrontendWebMobileBeginner

Master ReactJS to build dynamic user interfaces with ReactJS Academy.

🤖 AI-Powered
Course Overview

Master ReactJS: Build Dynamic & Interactive Web Applications with CoddyKit

Unlock the power of modern frontend development with CoddyKit's comprehensive ReactJS learning path! ReactJS, the leading JavaScript library for building user interfaces, is essential for any aspiring or experienced web developer looking to create high-performance, scalable, and interactive web applications. From single-page applications to complex enterprise solutions, React's component-based architecture and declarative approach make development efficient and enjoyable. With high demand for React developers in the tech industry, mastering this framework will significantly boost your career prospects.

Our expertly curated curriculum guides you through every facet of React, starting from the absolute basics and progressing to advanced patterns, performance optimization, and robust application architecture. Whether you're a beginner eager to dive into frontend development or an experienced programmer looking to upskill, CoddyKit provides a clear, structured, and engaging learning experience. Get ready to build stunning user interfaces and bring your web projects to life!

Getting Started with React (Level: A1)

Begin your journey into ReactJS by understanding its core concepts and setting up your development environment. This module introduces you to React's fundamental features and prepares you to write your first components.

  • What is React?: Introduction to React and its key features, highlighting its role in modern web development.
  • Setting Up Your Environment: Guidance on installing Node.js, npm, and setting up a new React project efficiently.
  • Understanding JSX: Learn what JSX is, why it's used, and how it simplifies UI development in React.
  • Creating Your First Component: Hands-on experience building a simple, reusable React component.

React Fundamentals (Level: A1)

Solidify your understanding of React's building blocks, focusing on how components communicate and respond to user input.

  • Props and State: Deep dive into understanding how props pass data and state manages internal component data.
  • Handling Events: Learn to add interactivity to your applications through effective event handling.
  • Conditional Rendering: Master techniques for rendering components or elements based on specific conditions.
  • Lists and Keys: Understand how to efficiently render lists of data and the importance of keys in React.

Advanced Concepts (Level: A1)

Explore powerful React features like Hooks and Context API to manage state and side effects more effectively.

  • Introduction to Hooks: Discover what Hooks are, their purpose, and why they revolutionized React development.
  • Using useState and useEffect: Practical application of useState for state management and useEffect for handling side effects.
  • Context API: Learn how to share state across components without prop drilling using the Context API.
  • Error Boundaries: Implement strategies for catching and gracefully handling errors in React applications.

Working with APIs (Level: A1)

Integrate external data into your React applications by learning various methods for fetching and displaying API data.

  • Fetching Data with Fetch API: Make basic API calls using the native Fetch API.
  • Fetching Data with Axios: Utilize the popular Axios library for more robust and convenient API requests.
  • Displaying Fetched Data: Techniques for rendering and presenting data retrieved from an API in your components.

Routing in React (Level: A1)

Build multi-page applications and manage navigation within your React projects using React Router.

  • Introduction to React Router: Set up and configure client-side routing with React Router.
  • Dynamic Routing: Create dynamic routes and handle route parameters to display specific content.

State Management (Level: A1)

Understand the principles of global state management and integrate Redux into your React applications for complex state needs.

  • Introduction to Redux: Grasp the core concepts of Redux for predictable state management.
  • Setting Up Redux: Integrate Redux into an existing React project.
  • Using Redux with React Components: Connect your React components to the Redux store for seamless state access and updates.

Styling in React (Level: A1)

Discover various approaches to styling your React components, from simple inline styles to advanced CSS-in-JS solutions.

  • Inline Styles: Apply inline styles directly to your React components.
  • CSS Modules: Use CSS modules for component-specific, encapsulated styling.
  • Styled Components: Explore the popular styled-components library for writing CSS directly within your JavaScript.

React Kickoff: Concepts & Setup (Level: A1)

Start with React fundamentals: components, declarative UI, and how diffing updates the DOM efficiently. Then set up a project (e.g., Vite), run a dev server, and render your first component.

  • React Kickoff: Concepts & Setup: What is React, why declarative UI matters, how diffing works; quick setup with a dev server; folder layout; and first render with createRoot.
  • Project Setup: Vite, Layout & Dev Server: Create a React app with Vite (or similar), understand the basic folder layout, run a dev server, and verify rendering with a tiny component.
  • First Component & Render: Write your first component function, render it into the DOM with createRoot, and see hot reload in action.

JSX & Rendering Basics (Level: A1)

Learn JSX rules: expressions and attributes, returning fragments, rendering lists with keys, simple conditionals, and styling options (CSS modules, inline styles, class helpers).

  • JSX Rules: Expressions, Attributes, Fragments: Use JSX expressions with { }, apply camelCase attributes (className, onClick), and return multiple elements via fragments.
  • Lists & Keys; Conditional Rendering: Render arrays with map(), choose stable keys, handle empty/loading states, and apply common conditional patterns.
  • Styling Options: CSS Modules, Inline Styles, Class Helpers: Compare inline styles, className with CSS (incl. CSS Modules concept), and class helper utilities for conditional styling.

Props & Composition (Level: A1)

Pass data with props, set simple defaults via destructuring, compose UIs with children, and prefer composition over inheritance for reusable presentational components.

  • Passing Props & Composition Patterns: Passing props and providing defaults via destructuring; composition vs inheritance; children and slots-like patterns for flexible UIs.
  • Props & Composition: Passing props, default props via destructuring, composition vs inheritance, children/slots patterns, and simple presentational components.
  • Reusable Presentational Components: Design small, prop-driven UI pieces (buttons, cards, badges) that are easy to reuse; accept className/style overrides; avoid hidden side effects.

State & Events Essentials (Level: A1)

Master useState and event handling: update state correctly, handle onClick/onChange, and prepare for controlled inputs.

  • useState Basics & Correct Updates: useState fundamentals and correct updates (value vs functional updater); recognize stale reads and batched updates.
  • Event Handling: onClick & onChange: Handle user input with onClick and onChange; understand React’s synthetic events and read values safely.
  • Controlled vs Uncontrolled Inputs (Intro): Understand the difference between controlled inputs (value bound to state) and uncontrolled inputs (DOM manages value).

Forms & Validation (Intro) (Level: A1)

Learn to build controlled forms with multiple inputs, apply basic validation, and handle submissions smoothly in React.

  • Controlled Forms with Multiple Inputs: Build a form with multiple controlled inputs; store each value in state and handle submit in React.
  • Basic Validation Patterns & Submit Handling: Apply simple form checks (required fields, length, basic email) and handle submit by preventing reload and reporting errors.
  • Error Messages & Touched/Dirty States (Vanilla): Show errors only when fields are interacted with (touched) or changed (dirty); improve UX with clear, timely feedback.

Routing Fundamentals (Level: A1)

Understand client-side routing: how SPAs switch views without full page reloads, basic paths and params, and active navigation states.

  • Client-side Routing Concepts: Learn SPA routing concepts: paths map to views, navigation updates URL and UI without full reload; simple hash-based demo.
  • Nested Routes & Route Params: Learn how a parent route renders child views and how route parameters (e.g., /products/42) pass IDs to components.
  • Navigation Links & Active States: Build navigation with clear active states using className and aria-current; keep links accessible and small-screen friendly.

useEffect Deep Dive (Level: A2)

Understand useEffect: when it runs vs render, how dependency arrays control it, and how to write safe cleanups.

  • Effects vs Render, Dependencies & Cleanup: Differences between render and effects; dependency arrays ([] , [x]) and writing cleanup functions.
  • Common Pitfalls: Stale Closures & Missing Deps: Avoid stale closures and missing dependencies; learn safe patterns to read the latest values inside effects and timers.
  • Fetching Basics in Effects (Abort & Cleanup): Fetch data inside effects with loading/error states; use AbortController and cleanup to cancel in-flight requests on unmount or dependency change.

Data Fetching Patterns (Level: A2)

Design resilient data UIs: handle loading, error, empty, and success states with clear feedback and lightweight skeletons.

  • Loading, Error, Empty States & Skeletons: Plan for loading, error, empty, and success; show skeletons while loading and keep messages clear on small screens.
  • Retry/Backoff Ideas & Request Cancellation: Implement simple retry with exponential backoff (+ jitter) and cancel in-flight requests safely with AbortController.
  • Intro to Fetch Helpers (No Heavy Libs): Create a tiny fetch helper or hook to standardize loading/error/data and JSON handling without large libraries.

useRef & the DOM (Level: A2)

Master useRef: persist values across renders without causing re-renders, access DOM nodes, and manage timers safely.

  • Persisting Values Without Re-render: Keep mutable values across renders without triggering re-render; compare useRef vs useState with simple counters and a timer id.
  • Accessing DOM Nodes, Measuring & Focusing: Use refs to access DOM nodes, focus inputs after render, and measure element size in a simple, beginner-friendly way.
  • Mutable Refs for Timers & IDs: Use refs to hold timer handles, debounce timeouts, and simple unique ids that survive renders without causing re-renders.

Context & useReducer (Level: A2)

Share state across distant components with Context to avoid prop drilling; set up a Provider and read values via useContext.

  • Context Basics & Avoiding Prop Drilling: Learn Context basics: create a context, wrap with Provider, consume with useContext, and replace prop drilling for shared settings.
  • useReducer Basics & Action Patterns: Learn useReducer: state + reducer(state, action) → next state. Use clear actions (type, payload) to handle multi-field updates.
  • Context + Reducer: Simple State Containers: Combine Context + useReducer to build a tiny state container: Provider exposes state and dispatch via a custom hook.

Custom Hooks (Level: A2)

Extract reusable logic into custom hooks: define clear parameters, return stable values/actions, and keep effects clean.

  • Extracting Logic to Hooks: Parameters & Returns: Extract repeated logic into a custom hook. Choose inputs (parameters) and a stable return shape (object/array) for easy reuse.
  • Naming, Memoization & Effect Hygiene: Name hooks clearly, return stable values/handlers via memoization, and keep effects tidy with complete deps and proper cleanup.
  • Testing Custom Hooks (Preview): Preview how to test custom hooks: build a tiny harness component, drive state changes, and assert outputs via DOM or logs.

Rendering & Memoization (Level: B1)

Understand React's render vs commit phases, when components update, and when memoization helps.

  • Re-renders vs Commits: When to Optimize: Differentiate re-renders and commits; learn what triggers updates and when memoization is worth it.
  • React.memo, useMemo, useCallback — In Practice: Use React.memo to skip child re-renders, useMemo for derived values, and useCallback for stable handler identities.
  • Derived State & Avoiding Extra Renders: Prefer derived values over duplicated state; memoize heavy computations; keep one source of truth to avoid extra renders.

Transitions & Suspense (Basics) (Level: B1)

Learn concurrent UI basics with useTransition: keep typing responsive, show a pending hint, and defer non-urgent updates.

  • useTransition for Pending UI (Concurrent Basics): Keep input responsive by deferring heavy renders with useTransition and show a pending UI while results catch up.
  • Suspense for Async Boundaries (Concepts): Use Suspense to show a fallback while parts of the UI are not ready. Create boundaries and keep the rest of the page interactive.
  • Fallbacks & Splitting Slow Paths: Design helpful fallbacks (spinners/skeletons) and split slow paths with React.lazy so only heavy parts wait.

Code Splitting & Asset Strategy (Level: B1)

Load only what you need by code-splitting screens and widgets. Use React.lazy and Suspense to ship faster-feeling apps.

  • React.lazy and Suspense — Lazy Components: Split code by route or widget. Lazy-load components with React.lazy and show Suspense fallbacks so the rest of the page stays interactive.
  • Route-based & Component-level Splitting: Split by route (screen-level) and split inside screens (widget-level). Use Suspense near the slow area so the rest stays interactive.
  • Bundles, Cache & Preloading Hints: Understand bundles and caching: content hashes, immutable assets, HTML as the switch. Use gentle preloading to make interactions feel instant.

Testing React Components (Level: B2)

Set up tests with Vitest/Jest and React Testing Library; render components, query by role/label, and run in a jsdom environment.

  • React Testing Library + Vitest/Jest Setup: Install and configure Vitest/Jest with React Testing Library; use jsdom, render components, and query the DOM like a user.
  • Queries, Events, Assertions — Forms & Async UI: Use getBy/findBy queries, user-event for typing/clicks, and jest-dom assertions. Test forms and async screens with confidence.
  • Mocking Fetch & Timers: Stub network with fetch mocks and control time with fake timers; write stable, fast tests for async components.

Accessibility Essentials (Level: B2)

Build inclusive UIs: use real semantics, clear labels and roles, and manage keyboard focus for smooth navigation.

  • Semantics, Labels, Roles, Focus: Use proper semantics, connect labels to inputs, rely on roles, and move focus where the user needs it.
  • Keyboard Interactions & Skip Links: Support keyboard-first users: native buttons/links, logical tab order, arrow-key patterns, and a visible skip link to main content.
  • Testing A11y Basics: Write simple tests that catch common accessibility issues: prefer role/label queries, assert names/states, and add automated a11y checks.

Linting & Conventions (Level: B2)

Keep code clean with ESLint + React rules and auto-format with Prettier. Add scripts and fix issues fast.

  • ESLint + React Rules; Prettier Integration: Set up ESLint with React rules and integrate Prettier for consistent formatting; run lint and fix commands.
  • File Naming, Component Boundaries, Prop Naming: Adopt simple conventions: PascalCase for components, clear folders, small component boundaries, and expressive prop names.
  • Env Variables & Config Organization: Create a tiny config layer: read env vars, provide safe defaults, and switch by NODE_ENV/APP_ENV. Never ship secrets to the browser.

Controlled vs Uncontrolled Components (Level: C1)

Master controlled and uncontrolled inputs: when to pick each, simple ref patterns, and safe defaults.

  • Trade-offs; Ref Patterns; Default Values: Compare controlled vs uncontrolled inputs, use refs for reads, and provide sensible defaults.
  • Prop Getters & State Reducer (Light): Expose safe handlers with prop getters and allow parents to alter transitions via a light state reducer.

Compound Components (Level: C1)

Build compound components: parent provides context, children consume it for flexible APIs.

  • Parent–Child Coordination via Context: Use context inside a parent component to let children share state and coordinate behavior.
  • API Ergonomics with Composition: Design friendly APIs using composition: small parts, sensible defaults, and clear names that read like markup.
  • Slots Pattern with Clearly Named Children: Implement slot-like APIs with named props or child parts (Header, Actions, Footer). Provide defaults and keep placement predictable.

Error Boundaries & Robustness (Level: C1)

Catch render-time errors with Error Boundaries, show safe fallbacks, and keep the rest of the app responsive.

  • Error Boundary Components (Class-Based Wrapper): Build a class-based ErrorBoundary that catches render/lifecycle errors in descendants and shows a friendly fallback.
  • Recovering UI & Reporting Strategies: Design friendly fallbacks with retry/reset, keep the rest of the screen usable, and send lightweight error reports.
  • Guarding Effects & Cleanup: Avoid memory leaks and stale updates by returning cleanups from effects, cancelling async work, and removing listeners/timeouts.

Forms at Scale (Vanilla or Light Helpers) (Level: C1)

Build large forms with small, robust pieces: field arrays, dynamic sections, and simple validation flows.

  • Field Arrays, Dynamic Forms, Validation Flows: Create field arrays, show/hide sections based on values, and implement touched/errors for a clear validation flow.
  • Async Validation & Dependent Fields: Implement async validation (debounce/blur, pending states, cancellation) and build dependent selects that fetch options safely.
  • Performance Tricks for Large Forms: Reduce re-renders with memoized fields and stable handlers; compute expensive summaries with useMemo; avoid prop churn.

Advanced Routing (Level: C2)

Go beyond basics: nested layouts, conceptual route loaders, and simple prefetching ideas for smoother navigation.

  • Nested Layouts, Loaders (Concept), Prefetching: Build nested layout UIs, understand route loaders conceptually, and add tiny link prefetch hints for faster screens.
  • Auth Flows & Protected Routes: Build a simple auth flow: login state, protecting routes, capturing the intended path, and basic role checks.
  • Scroll Restoration & Not-Found Routes: Restore scroll when navigating back and show a friendly 404 for unknown routes; keep UX smooth on mobile.

Server State vs UI State (Level: C2)

Know what belongs to the server cache and what is local UI state. Fetch, refresh, and avoid mixing concerns.

  • Distinguishing Server Data and Local UI State: Separate server data (fetched, cached, refreshed) from ephemeral UI state (open panels, inputs). Keep logic clear and updates predictable.
  • Normalization & Optimistic Updates (Concepts): Normalize server data locally (ids + entities) and apply optimistic updates with a safe rollback when the server rejects changes.
  • Sync Patterns Without Heavy Libs: Use simple sync patterns: stale-while-revalidate, background refresh, refetch on focus/retry, and time-based revalidation.

Patterns for Modals/Toasts/Overlays (Level: C2)

Create accessible overlays: render with portals, keep focus inside, and support quick close with Escape/backdrop.

  • Portals, Focus Trap, Escape-to-Close: Render modals via portals, trap focus for keyboard users, and close on Escape/backdrop for a solid a11y baseline.
  • Global Overlay Manager (Context + Reducer): Centralize overlays using Context + Reducer: a single store for modals/toasts with simple actions callable from anywhere.
  • Announcements for Accessibility (aria-live): Use aria-live regions to announce changes without stealing focus. Pick polite vs assertive, set aria-atomic, and centralize announcements.

Build, Analyze, Ship (Level: C2)

Prepare apps for production: dev vs prod builds, source maps, simple environment variables, and small checks to ship confidently.

  • Dev/Prod Builds, Source Maps, Envs: Understand dev vs prod builds, what source maps are for, and how env values guide behavior (e.g., API URL, debug).
  • Bundle Analysis & Trimming Unused Code: Read bundle reports, find big modules, and trim them with tree-shaking friendly code: ESM named exports, no top-level side effects, lazy where sensible.
  • Basic CI: Lint → Test → Build: Automate quality gates with a tiny CI: run lint, run tests, then build. Fail fast, keep logs readable, and cache dependencies.

TypeScript with React (Optional) (Level: D2)

Add lightweight types to React components. Start with props, then extract reusable generics to keep UI code safe and clear.

  • Props Typing & Generics for Reusable Components: Type component props clearly and build tiny generic pieces (e.g., List<T>) using JSDoc or TS. Keep defaults simple and safe.
  • Event Types, Refs, and Context Typing: Type common React pieces: event handlers, element refs, and context values. Use JSDoc to resemble TypeScript while keeping code runnable.
  • Migrating Incrementally: Adopt TS gradually: enable checks, annotate with JSDoc, migrate hot files first, and keep builds green during the transition.

Project Structure & Conventions (Level: D2)

Organize React apps: feature-first folders, small UI primitives vs composite components, hooks and tests co-located, and clear refactoring rules.

  • Feature Folders & UI vs Composite Components: Adopt feature folders and split components: tiny reusable UI primitives vs feature-specific composites that orchestrate state and data.
  • Hooks Folder Conventions & Test Co-location: Create a simple hooks convention (prefix use*, keep pure logic), place hooks in feature folders, and keep tests next to the units they verify.
  • Refactoring Guidelines: Refactor in tiny steps: extract components/hooks, slim props, remove dead code, and keep tests green at each checkpoint.

What You'll Learn

By completing the ReactJS learning path on CoddyKit, you will gain a comprehensive skill set to build professional-grade web applications. You'll master core React concepts like components, props, and state, and delve into advanced topics such as Hooks (useState, useEffect, useContext, useReducer), Context API, and Redux for robust state management. You'll learn to integrate APIs, implement client-side routing, and apply various styling techniques. Furthermore, you'll develop expertise in testing React components, ensuring accessibility, optimizing performance with memoization and code splitting, and preparing applications for production deployment. You'll also explore best practices in project structure, conventions, and optionally, integrate TypeScript for enhanced code safety.

Who Is This Course For?

This ReactJS curriculum is designed for a wide range of learners:

  • Beginner Web Developers: If you have a foundational understanding of HTML, CSS, and JavaScript and are eager to specialize in frontend development, this course provides a structured entry point into React.
  • Experienced JavaScript Developers: Developers familiar with JavaScript but new to modern frameworks will find a clear path to adopting ReactJS and its ecosystem.
  • Career Changers & Upskillers: Professionals looking to transition into a frontend development role or enhance their existing skill set with a highly sought-after technology.
  • Students & Bootcamp Graduates: Anyone seeking to solidify their React knowledge with practical examples, best practices, and a deep dive into advanced patterns.

Join CoddyKit today and transform your coding skills into the ability to build powerful, responsive, and beautiful web applications. Start your ReactJS journey now and become a proficient frontend developer!

Start Learning →

How You'll Learn

🎯
Interactive Lessons
Hands-on coding exercises with real-time feedback
🤖
AI Tutor
Get instant help from our AI when you're stuck
💻
Built-in Editor
Write and run code directly in your browser
🏆
Certificate
Earn a certificate when you complete the course
Curriculum

88 Courses

Every course in the React Academy learning path.

01

React Kickoff: Concepts & Setup

A13 lessonsPRO

Start with React fundamentals: components, declarative UI, and how diffing updates the DOM efficiently. Then set up a project (e.g., Vite),…

  • React Kickoff: Concepts & Setup
  • Project Setup: Vite, Layout & Dev Server
  • First Component & Render
02

JSX & Rendering Basics

A13 lessonsPRO

Learn JSX rules: expressions and attributes, returning fragments, rendering lists with keys, simple conditionals, and styling options (CSS…

  • JSX Rules: Expressions, Attributes, Fragments
  • Lists & Keys; Conditional Rendering
  • Styling Options: CSS Modules, Inline Styles, Class Helpers
03

React DevTools & Debugging

A24 lessonsPRO

Master the React DevTools browser extension to inspect component trees, profile renders, and debug state and props effectively.

  • Installing & Opening React DevTools
  • Inspecting Component Trees & Props
  • Using the Profiler Tab
  • +1 more
04

CSS Animations and Transitions in React

A24 lessonsPRO

Create smooth enter, exit, and state-change animations in React using CSS transitions and keyframes — no animation library required.

  • CSS Transitions with React State Changes
  • CSS Keyframe Animations with React
  • useLayoutEffect for Pre-Animation Measurements
  • +1 more
05

Lifting State Up & Prop Drilling Solutions

A24 lessonsPRO

Share state between sibling components by lifting it up, and understand when prop drilling becomes a problem worth solving.

  • Lifting State Up: Principles & Examples
  • Prop Drilling: When It Hurts & When It's Fine
  • Sibling Communication Patterns
  • +1 more
06

Local Storage and State Persistence

A24 lessonsPRO

Persist React state across page reloads using localStorage, handle cross-tab synchronization, and choose the right browser storage API for…

  • Reading and Writing localStorage in React
  • Syncing State with localStorage
  • Handling Storage Events Across Tabs
  • +1 more
07

Dark Mode with React

A24 lessonsPRO

Build a robust dark mode system using CSS custom properties, React context, and the prefers-color-scheme media query — preventing flash of…

  • Detecting System Color Scheme
  • CSS Variables for Theme Switching
  • React Context for Theme State
  • +1 more
08

Props & Composition

A23 lessonsPRO

Pass data with props , set simple defaults via destructuring, compose UIs with children , and prefer composition over inheritance for reusa…

  • Passing Props & Composition Patterns
  • Props & Composition
  • Reusable Presentational Components
09

State & Events Essentials

A23 lessonsPRO

Master useState and event handling: update state correctly, handle onClick/onChange, and prepare for controlled inputs.

  • useState Basics & Correct Updates
  • Event Handling: onClick & onChange
  • Controlled vs Uncontrolled Inputs (Intro)
10

Forms & Validation (Intro)

A23 lessonsPRO

Learn to build controlled forms with multiple inputs, apply basic validation, and handle submissions smoothly in React.

  • Controlled Forms with Multiple Inputs
  • Basic Validation Patterns & Submit Handling
  • Error Messages & Touched/Dirty States (Vanilla)
11

Routing Fundamentals

A23 lessonsPRO

Understand client-side routing: how SPAs switch views without full page reloads, basic paths and params, and active navigation states.

  • Client-side Routing Concepts
  • Nested Routes & Route Params
  • Navigation Links & Active States
12

useRef & the DOM

A23 lessonsPRO

Master useRef : persist values across renders without causing re-renders, access DOM nodes, and manage timers safely.

  • Persisting Values Without Re-render
  • Accessing DOM Nodes, Measuring & Focusing
  • Mutable Refs for Timers & IDs
13

Linting & Conventions

A23 lessonsPRO

Keep code clean with ESLint + React rules and auto-format with Prettier . Add scripts and fix issues fast.

  • ESLint + React Rules; Prettier Integration
  • File Naming, Component Boundaries, Prop Naming
  • Env Variables & Config Organization
14

Controlled vs Uncontrolled Components

A22 lessonsPRO

Master controlled and uncontrolled inputs: when to pick each, simple ref patterns, and safe defaults.

  • Trade-offs; Ref Patterns; Default Values
  • Prop Getters & State Reducer (Light)
15

React Strict Mode & Best Practices

B14 lessonsPRO

Learn what StrictMode does, which warnings it surfaces, and coding conventions that make React apps easier to maintain.

  • What StrictMode Does
  • Pure Components & Avoiding Side Effects in Render
  • Key & Ref Best Practices
  • +1 more
16

Portals & Modals in React

B14 lessonsPRO

Render content outside the parent DOM hierarchy using React Portals to build modals, tooltips, and overlays.

  • What Are React Portals?
  • Building a Modal Component with Portals
  • Handling Focus & Keyboard Traps in Modals
  • +1 more
17

React Children API & Slots Pattern

B14 lessonsPRO

Work with props.children, React.Children utilities, and implement flexible slot-based component APIs.

  • props.children Fundamentals
  • React.Children Utilities
  • Named Slots via Object Props
  • +1 more
18

Uncontrolled Components & File Uploads

B14 lessonsPRO

Use uncontrolled inputs with useRef, read file input values, and handle file upload workflows in React.

  • Uncontrolled Inputs with useRef
  • File Input & Reading File Data
  • Drag & Drop File Upload UI
  • +1 more
19

React Context Patterns & Performance

B14 lessonsPRO

Design Context providers that minimize re-renders using memoization, split contexts, and selector patterns.

  • Splitting Contexts to Limit Re-renders
  • Memoizing Context Values with useMemo
  • Context Selector Pattern
  • +1 more
20

Internationalisation (i18n) in React

B14 lessonsPRO

Add multi-language support to React apps using react-i18next, manage translation files, and handle locale switching.

  • Setting Up react-i18next
  • Using the useTranslation Hook
  • Pluralisation & Interpolation
  • +1 more
21

Browser APIs in React

B14 lessonsPRO

Integrate powerful browser APIs — Clipboard, Geolocation, Notifications, and IntersectionObserver — into React components with proper clean…

  • Clipboard API: Copy and Paste in React
  • Geolocation API in React Components
  • Notifications API and Permission Handling
  • +1 more
22

Debouncing and Throttling in React

B14 lessonsPRO

Prevent excessive re-renders and API calls by implementing debounce and throttle patterns as reusable React hooks for search, scroll, and r…

  • Why Debounce and Throttle Matter in UIs
  • Implementing useDebounce Custom Hook
  • Implementing useThrottle Custom Hook
  • +1 more
23

Form Autocomplete and Type-Ahead Search

B14 lessonsPRO

Build accessible, keyboard-navigable autocomplete and type-ahead components from scratch using React state and refs — no library needed.

  • Controlled Input with Suggestion List
  • Keyboard Navigation in Suggestion Lists
  • Async Suggestions with Debounce
  • +1 more
24

Managing Forms with React Hook Form

B14 lessonsPRO

Build performant, flexible forms in React using React Hook Form: registration, validation, error display, and schema integration.

  • Getting Started with React Hook Form
  • Validation Rules & Error Messages
  • Schema Validation with Zod
  • +1 more
25

State Management with Zustand

B14 lessonsPRO

Use Zustand to manage global state in React apps: stores, actions, selectors, persistence, and devtools integration.

  • Creating Your First Zustand Store
  • Selectors & Preventing Unnecessary Re-renders
  • Persisting State with the Persist Middleware
  • +1 more
26

React Router v6 Advanced Patterns

B14 lessonsPRO

Go beyond basic routes with nested layouts, loaders, actions, protected routes, and search-param state management.

  • Nested Routes & Outlet Layouts
  • Loaders & Actions (Data Router API)
  • Protected Routes & Auth Guards
  • +1 more
27

TypeScript with React: Typing Components & Hooks

B14 lessonsPRO

Add TypeScript to React projects: type props, events, hooks, context, and generic components with confidence.

  • Typing Props & Component Return Types
  • Typing Events & Refs in TypeScript
  • Generic Components & Utility Types
  • +1 more
28

TanStack Table: Complex Data Tables

B14 lessonsPRO

Build production-grade data tables with sorting, filtering, pagination, and row selection using TanStack Table's powerful headless architec…

  • TanStack Table Philosophy and Headless Design
  • Defining Columns and Rendering Rows
  • Sorting, Filtering, and Pagination
  • +1 more
29

Jotai: Atomic State Management

B14 lessonsPRO

Manage React state with Jotai's minimal atomic model — composable atoms that derive values, handle async, and integrate perfectly with Reac…

  • Atoms: The Unit of State in Jotai
  • Reading and Writing Atoms with useAtom
  • Derived Atoms and Async Atoms
  • +1 more
30

SWR: Data Fetching by Vercel

B14 lessonsPRO

Use SWR's stale-while-revalidate strategy for fast, reliable data fetching with automatic revalidation, mutation, and offline support.

  • SWR Core Concepts: Stale-While-Revalidate
  • useSWR Hook: Fetching, Loading, and Error States
  • Mutation and Optimistic Updates with SWR
  • +1 more
31

dnd-kit: Accessible Drag and Drop

B14 lessonsPRO

Build accessible, touch-friendly drag-and-drop interfaces in React with dnd-kit — sortable lists, kanban boards, and multi-container drag i…

  • dnd-kit Architecture and Accessibility-First Design
  • DndContext, useDraggable, and useDroppable
  • SortableContext for Reorderable Lists
  • +1 more
32

React Spring: Physics-Based Animations

B14 lessonsPRO

Create fluid, spring-physics-based animations in React using react-spring — from simple value transitions to complex gesture-driven interac…

  • React Spring Core: useSpring Hook
  • Animated Components and Style Interpolation
  • useTrail and useChain for Sequences
  • +1 more
33

Server-Sent Events and Polling in React

B14 lessonsPRO

Implement real-time data feeds in React using Server-Sent Events and polling strategies — understanding the trade-offs with WebSockets for…

  • SSE vs WebSockets vs Polling Comparison
  • Consuming SSE Streams in React with EventSource
  • Long Polling Pattern and Reconnection Logic
  • +1 more
34

useEffect Deep Dive

B13 lessonsPRO

Understand useEffect : when it runs vs render, how dependency arrays control it, and how to write safe cleanups.

  • Effects vs Render, Dependencies & Cleanup
  • Common Pitfalls: Stale Closures & Missing Deps
  • Fetching Basics in Effects (Abort & Cleanup)
35

Data Fetching Patterns

B13 lessonsPRO

Design resilient data UIs: handle loading , error , empty , and success states with clear feedback and lightweight skeletons.

  • Loading, Error, Empty States & Skeletons
  • Retry/Backoff Ideas & Request Cancellation
  • Intro to Fetch Helpers (No Heavy Libs)
36

Context & useReducer

B13 lessonsPRO

Share state across distant components with Context to avoid prop drilling; set up a Provider and read values via useContext .

  • Context Basics & Avoiding Prop Drilling
  • useReducer Basics & Action Patterns
  • Context + Reducer: Simple State Containers
37

Custom Hooks

B13 lessonsPRO

Extract reusable logic into custom hooks : define clear parameters, return stable values/actions, and keep effects clean.

  • Extracting Logic to Hooks: Parameters & Returns
  • Naming, Memoization & Effect Hygiene
  • Testing Custom Hooks (Preview)
38

Accessibility Essentials

B13 lessonsPRO

Build inclusive UIs: use real semantics, clear labels and roles, and manage keyboard focus for smooth navigation.

  • Semantics, Labels, Roles, Focus
  • Keyboard Interactions & Skip Links
  • Testing A11y Basics
39

Animations with Framer Motion

B14 lessonsPRO

Add fluid animations and transitions to React apps with Framer Motion: motion components, variants, gestures, and layout animations.

  • Motion Components & Basic Animations
  • Variants for Orchestrated Animations
  • Gesture Animations: Hover, Tap & Drag
  • +1 more
40

Error Boundaries & Robustness

B13 lessonsPRO

Catch render-time errors with Error Boundaries, show safe fallbacks, and keep the rest of the app responsive.

  • Error Boundary Components (Class-Based Wrapper)
  • Recovering UI & Reporting Strategies
  • Guarding Effects & Cleanup
41

TypeScript with React (Optional)

B13 lessonsPRO

Add lightweight types to React components. Start with props, then extract reusable generics to keep UI code safe and clear.

  • Props Typing & Generics for Reusable Components
  • Event Types, Refs, and Context Typing
  • Migrating Incrementally
42

Project Structure & Conventions

B13 lessonsPRO

Organize React apps: feature-first folders, small UI primitives vs composite components, hooks and tests co-located, and clear refactoring…

  • Feature Folders & UI vs Composite Components
  • Hooks Folder Conventions & Test Co-location
  • Refactoring Guidelines
43

Virtualized Lists with react-window

B24 lessonsPRO

Render thousands of list items without performance degradation by using react-window to virtualize DOM output — only rendering what's visib…

  • The Large List Rendering Problem
  • FixedSizeList: Rendering Thousands of Items
  • VariableSizeList: Dynamic Row Heights
  • +1 more
44

Async Patterns in React: Promises & Concurrency

B24 lessonsPRO

Handle async operations idiomatically in React with useEffect, useTransition, useDeferredValue, and Suspense.

  • Racing Conditions & Effect Cleanup
  • useTransition for Non-Blocking UI Updates
  • useDeferredValue for Input Debouncing
  • +1 more
45

React Patterns: Render Props & HOCs

B24 lessonsPRO

Understand render props and higher-order components as classic code-reuse patterns before hooks replaced them.

  • Render Props Pattern
  • Higher-Order Components (HOCs) Explained
  • HOC vs Render Props vs Custom Hooks
  • +1 more
46

useLayoutEffect vs useEffect

B24 lessonsPRO

Understand the subtle but critical difference between useEffect and useLayoutEffect — when each fires relative to the DOM commit — and use…

  • The Rendering Phase and DOM Commit
  • When useLayoutEffect Runs vs useEffect
  • Measuring DOM Elements with useLayoutEffect
  • +1 more
47

Redux Toolkit & RTK Query

B24 lessonsPRO

Manage complex app state with Redux Toolkit slices, thunks, and RTK Query for server-state caching and synchronisation.

  • Redux Toolkit Slices & createSlice
  • Async Logic with createAsyncThunk
  • RTK Query: Endpoints & Auto-Caching
  • +1 more
48

Server Components & React 19 Features

B24 lessonsPRO

Understand React Server Components, the use() hook, Actions, and other React 19 APIs that change how data flows in apps.

  • React Server Components Explained
  • The use() Hook for Async Resources
  • React Actions & useActionState
  • +1 more
49

React Query: Server State Management

B24 lessonsPRO

Manage server state with TanStack Query: fetching, caching, background refetching, mutations, and pagination.

  • Setting Up React Query & QueryClient
  • Caching, Stale Time & Background Refetching
  • Mutations with useMutation
  • +1 more
50

React Testing: Integration & E2E

B24 lessonsPRO

Write integration tests with React Testing Library and end-to-end tests with Playwright to validate real user flows.

  • Integration Testing with React Testing Library
  • Testing Async UI & API Calls with MSW
  • Getting Started with Playwright for React
  • +1 more
51

Component Design Systems & Storybook

B24 lessonsPRO

Document, develop, and test React UI components in isolation using Storybook with CSF3 stories and addons.

  • Setting Up Storybook in a React Project
  • Writing CSF3 Stories
  • Args, Controls & the Actions Addon
  • +1 more
52

Real-Time UIs with WebSockets & React

B24 lessonsPRO

Build live-updating React interfaces using WebSockets and libraries like Socket.IO for chat, notifications, and dashboards.

  • WebSocket Fundamentals in the Browser
  • Using Socket.IO with React
  • Building a Real-Time Chat Component
  • +1 more
53

tRPC: End-to-End Type-Safe APIs

B24 lessonsPRO

Build fully type-safe APIs without schemas or code generation using tRPC — sharing types between your React frontend and Node.js backend au…

  • The Problem tRPC Solves
  • Setting Up tRPC with React and Next.js
  • Queries, Mutations, and Subscriptions
  • +1 more
54

Apollo Client and React

B24 lessonsPRO

Integrate GraphQL into React applications with Apollo Client — querying, mutating, caching, and keeping UI in sync with server data.

  • GraphQL Fundamentals for React Developers
  • Setting Up Apollo Client in React
  • useQuery and useMutation Hooks
  • +1 more
55

Optimistic UI and Mutation Patterns

B24 lessonsPRO

Build fast, responsive UIs that show results immediately before server confirmation — with proper rollback on failure and conflict resoluti…

  • What Is Optimistic UI and When to Use It
  • Implementing Optimistic Updates Manually
  • Rollback on Error and Conflict Resolution
  • +1 more
56

Publishing React Component Libraries

B24 lessonsPRO

Package and publish reusable React component libraries to npm — handling ESM/CJS dual output, peer dependencies, tree shaking, and automate…

  • Bundling with Rollup and tsup for Libraries
  • ESM and CJS Dual Package Output
  • Peer Dependencies and Tree Shaking
  • +1 more
57

Rendering & Memoization

B23 lessonsPRO

Understand React's render vs commit phases, when components update, and when memoization helps.

  • Re-renders vs Commits: When to Optimize
  • React.memo, useMemo, useCallback — In Practice
  • Derived State & Avoiding Extra Renders
58

Transitions & Suspense (Basics)

B23 lessonsPRO

Learn concurrent UI basics with useTransition : keep typing responsive, show a pending hint, and defer non-urgent updates.

  • useTransition for Pending UI (Concurrent Basics)
  • Suspense for Async Boundaries (Concepts)
  • Fallbacks & Splitting Slow Paths
59

Code Splitting & Asset Strategy

B23 lessonsPRO

Load only what you need by code-splitting screens and widgets. Use React.lazy and Suspense to ship faster-feeling apps.

  • React.lazy and Suspense — Lazy Components
  • Route-based & Component-level Splitting
  • Bundles, Cache & Preloading Hints
60

Testing React Components

B23 lessonsPRO

Set up tests with Vitest/Jest and React Testing Library ; render components, query by role/label, and run in a jsdom environment.

  • React Testing Library + Vitest/Jest Setup
  • Queries, Events, Assertions — Forms & Async UI
  • Mocking Fetch & Timers
61

Next.js App Router Fundamentals

B24 lessonsPRO

Build full-stack web apps with Next.js 14+ App Router: file-based routing, layouts, server components, and metadata.

  • App Router File Conventions
  • Server vs Client Components in Next.js
  • Dynamic Routes & Route Groups
  • +1 more
62

Next.js Data Fetching & Caching

B24 lessonsPRO

Fetch, cache, and revalidate data in Next.js App Router using fetch options, unstable_cache, and on-demand revalidation.

  • fetch() with Cache Options in Next.js
  • unstable_cache & React cache()
  • Incremental Static Regeneration (ISR)
  • +1 more
63

Authentication in Next.js with NextAuth.js

B24 lessonsPRO

Add authentication to Next.js apps using Auth.js (NextAuth v5): OAuth providers, credentials, sessions, and route protection.

  • Setting Up Auth.js in Next.js App Router
  • Session Management & useSession Hook
  • Credentials Provider & Custom Login
  • +1 more
64

React Native Fundamentals for React Developers

B24 lessonsPRO

Transfer your React knowledge to mobile by learning React Native primitives, styling, navigation, and native device APIs.

  • React Native Core Components vs Web DOM
  • Styling with StyleSheet API & Flexbox
  • Navigation with Expo Router
  • +1 more
65

Deploying React Apps: Vercel, AWS & Docker

B24 lessonsPRO

Deploy React and Next.js apps to production using Vercel, AWS S3/CloudFront, and Docker containers with CI/CD pipelines.

  • Deploying to Vercel: Zero-Config & Preview URLs
  • Hosting a React SPA on AWS S3 & CloudFront
  • Dockerizing a React/Next.js App
  • +1 more
66

React Server Actions: Forms and Mutations

B24 lessonsPRO

Use React 19 Server Actions and Next.js form actions to handle mutations server-side — eliminating API routes for common form patterns with…

  • Server Actions in React 19 and Next.js
  • Form Actions: Replacing API Routes for Mutations
  • useActionState and useFormStatus
  • +1 more
67

React Application Security

B24 lessonsPRO

Harden React applications against XSS, CSRF, and other vulnerabilities — with practical guidance on Content Security Policy, secrets manage…

  • XSS in React: dangerouslySetInnerHTML and Third-Party Scripts
  • CSRF Protection in React and API Setups
  • Content Security Policy for React Apps
  • +1 more
68

Design Token Systems for React

B24 lessonsPRO

Build a scalable design token system that powers multi-theme React component libraries — from token definition through CSS variables, Tailw…

  • What Are Design Tokens and Why They Matter
  • Style Dictionary: Transforming and Generating Tokens
  • Tokens in Tailwind, CSS Variables, and CSS-in-JS
  • +1 more
69

Electron.js: Desktop Apps with React

B24 lessonsPRO

Build cross-platform desktop applications using Electron with a React frontend — covering IPC communication, native APIs, and distribution…

  • Electron Architecture: Main and Renderer Processes
  • Setting Up React with Electron
  • IPC Communication Between Processes
  • +1 more
70

Compound Components

B23 lessonsPRO

Build compound components: parent provides context, children consume it for flexible APIs.

  • Parent–Child Coordination via Context
  • API Ergonomics with Composition
  • Slots Pattern with Clearly Named Children
71

Forms at Scale (Vanilla or Light Helpers)

B23 lessonsPRO

Build large forms with small, robust pieces: field arrays, dynamic sections, and simple validation flows.

  • Field Arrays, Dynamic Forms, Validation Flows
  • Async Validation & Dependent Fields
  • Performance Tricks for Large Forms
72

Advanced Routing

B23 lessonsPRO

Go beyond basics: nested layouts, conceptual route loaders, and simple prefetching ideas for smoother navigation.

  • Nested Layouts, Loaders (Concept), Prefetching
  • Auth Flows & Protected Routes
  • Scroll Restoration & Not-Found Routes
73

Server State vs UI State

B23 lessonsPRO

Know what belongs to the server cache and what is local UI state. Fetch, refresh, and avoid mixing concerns.

  • Distinguishing Server Data and Local UI State
  • Normalization & Optimistic Updates (Concepts)
  • Sync Patterns Without Heavy Libs
74

Patterns for Modals/Toasts/Overlays

B23 lessonsPRO

Create accessible overlays: render with portals, keep focus inside, and support quick close with Escape/backdrop.

  • Portals, Focus Trap, Escape-to-Close
  • Global Overlay Manager (Context + Reducer)
  • Announcements for Accessibility (aria-live)
75

Build, Analyze, Ship

B23 lessonsPRO

Prepare apps for production: dev vs prod builds, source maps, simple environment variables, and small checks to ship confidently.

  • Dev/Prod Builds, Source Maps, Envs
  • Bundle Analysis & Trimming Unused Code
  • Basic CI: Lint → Test → Build
76

useImperativeHandle and forwardRef

C14 lessonsPRO

Master imperative React APIs — expose custom component instance values to parents using forwardRef and useImperativeHandle for scenarios wh…

  • forwardRef: Exposing DOM Refs to Parents
  • useImperativeHandle: Custom Instance Values
  • Building an Imperative Component API
  • +1 more
77

useSyncExternalStore: Subscribing to External Stores

C14 lessonsPRO

Learn React 18's useSyncExternalStore hook — the correct way to synchronize React components with external state sources like browser APIs,…

  • The Problem with External Store Subscriptions
  • useSyncExternalStore API and Parameters
  • Subscribing to Browser APIs
  • +1 more
78

Micro-Frontend Architecture with React

C14 lessonsPRO

Decompose large React frontends into independently deployed micro-frontends using Module Federation and single-spa.

  • Micro-Frontend Concepts & Trade-offs
  • Module Federation with Webpack 5
  • Shared State & Routing Between MFEs
  • +1 more
79

React SSR & Hydration Deep Dive

C14 lessonsPRO

Understand server-side rendering mechanics, hydration, selective hydration, and streaming HTML with React's renderToPipeableStream.

  • How React SSR Works Under the Hood
  • Hydration Errors: Causes & Fixes
  • Selective Hydration & Streaming HTML
  • +1 more
80

Advanced TypeScript Patterns for React

C14 lessonsPRO

Level up React TypeScript skills with discriminated unions, mapped types, conditional types, and type-safe component APIs.

  • Discriminated Unions for Component Variants
  • Conditional & Mapped Types in React
  • Polymorphic Components with 'as' Prop
  • +1 more
81

Web Performance: Core Web Vitals & React

C14 lessonsPRO

Measure and improve Core Web Vitals (LCP, INP, CLS) in React apps with profiling tools, bundle analysis, and targeted optimisations.

  • Measuring Core Web Vitals in React Apps
  • Bundle Analysis & Code Splitting Strategy
  • Image & Font Optimisation in React
  • +1 more
82

Monorepo & Nx for React Projects

C14 lessonsPRO

Organise multiple React apps and shared libraries in a monorepo using Nx with smart task scheduling and affected-based CI.

  • Creating an Nx Monorepo with React Apps
  • Shared Libraries & Internal Packages
  • Nx Affected Commands & Caching
  • +1 more
83

Islands Architecture with Astro and React

C14 lessonsPRO

Escape full-page hydration by adopting the Islands Architecture — selectively hydrating only the interactive React components that need it…

  • The Full Hydration Problem
  • Islands Architecture: Selective Hydration
  • Astro and React Islands Setup
  • +1 more
84

React and WebAssembly Integration

C14 lessonsPRO

Integrate WebAssembly modules into React applications for computationally intensive tasks — from Rust WASM modules to shared memory and wor…

  • What Is WebAssembly and Where React Fits
  • Loading WASM Modules in React
  • Rust to WASM with wasm-pack and React
  • +1 more
85

Edge Rendering: Cloudflare Workers and React

C14 lessonsPRO

Serve React applications from the edge with sub-millisecond latency — using Cloudflare Workers, streaming SSR, and edge-native caching stra…

  • What Is Edge Rendering and Why It Matters
  • React on Cloudflare Workers with Hono
  • Streaming SSR from the Edge
  • +1 more
86

OpenTelemetry for React Frontend Observability

C14 lessonsPRO

Instrument React applications with OpenTelemetry to collect traces, measure real user performance, and correlate frontend events with backe…

  • Frontend Observability: What and Why
  • OpenTelemetry Traces from the Browser
  • Real User Monitoring and Web Vitals
  • +1 more
87

React Streaming and Progressive Loading

C14 lessonsPRO

Use React 18 streaming SSR and Suspense to progressively deliver HTML to the browser — improving perceived performance without waiting for…

  • React 18 Streaming: How renderToPipeableStream Works
  • Suspense Boundaries and Streaming Priority
  • Progressive Hydration with Selective Hydration
  • +1 more
88

Module Federation with React

C14 lessonsPRO

Implement Webpack Module Federation to build and deploy React micro-frontends independently — sharing dependencies, state, and routing acro…

  • Module Federation: Dynamic Runtime Imports
  • Configuring Host and Remote React Apps
  • Sharing State and Routing Between Remotes
  • +1 more

Start React Academy Now

Join thousands of learners mastering programming with AI-powered lessons.

Get Started Free →Browse All Courses