
This course includes our updated coding exercises so you can practice your skills as you learn.
See a demo
Gain a quick, deep understanding of how React works to implement and debug apps with a solid mental model, mastering JSX, components, hooks, and AI to generate React code.
Set up your environment with Visual Studio Code, Node, and npm, install Vite, scaffold a Quick React project in JavaScript, install dependencies, and run a local dev server.
Explore the difference between imperative and declarative programming, illustrating how imperative tells a robot how to move, while declarative describes what to achieve, and how React supports declarative practices.
Explore the two core concepts of React components and JSX, what they are and why they exist, with hands-on coding practice.
Explore how the DOM tree represents HTML as objects and how imperative updates trigger rerendering, then learn how React shifts focus from DOM manipulation to declaring what should happen.
Explore pure functions, defined as functions that always return the same output for the same inputs and have no side effects. Learn why this unchanging behavior boosts reusability in React.
Explore how React uses components and pure functions to create reusable UI pieces with co-located logic and presentation, demonstrated through a minimal setup and semantic HTML.
Mounting and rendering in React use declarative DOM updates inside the root element, while imperative DOM code lies outside. React figures the needed elements and updates the DOM accordingly.
Explore transpilation, the process of converting code from one syntax to another while preserving behavior. See how a transpiler can turn text like html into objects or nested function calls.
Learn how JSX is a JavaScript syntax extension that looks like HTML but is transpiled into nested JavaScript function calls, with fragments, a topmost parent, and conditional rendering.
Explore how event bubbling and delegation let React manage dom events with a single root listener, using synthetic events to map clicks to the responsible component.
Learn how to build reusable React components using props and children, split code into counters, export and compose components, and understand how JSX becomes props objects through transpilation.
Explore how React updates the DOM through its imperative work and examine the JavaScript objects revealed by JSX transpilation, focusing on React elements, the fiber tree, and reconciliation.
Understand that React elements are JavaScript objects with props and type that sketch what the dom should look like, and React updates the real dom from that declarative sketch.
Explore the fiber tree, the virtual dom in React, and how rerendering updates the dom by comparing current and work-in-progress branches, via fiber nodes and React elements.
React performs reconciliation by comparing the current fiber tree with the work-in-progress tree and planning the minimal steps needed on the DOM, so the DOM matches what our components render.
Explore how the fiber tree supports reconciliation and fuels a front-end architecture by enabling state hooks and data fetching.
Explore linked lists as a straightforward data structure, where each node points to the next (and sometimes previous) node, enabling efficient traversal that React uses.
Learn how hooks attach to fiber tree nodes as a linked list, storing state and queues, with use state or use reducer, under rules of hooks at the top level.
Explore the concept of state in React by treating the user interface as a function of state, where components render the dom from current data and update as state changes.
Use state with the useState hook to store a value and a setter in React, supporting direct updates or a function of the previous state, across components in the fiber.
learn how to fetch data in React with use and suspense, display a fallback while promises resolve, cache by label, and update the dom when data arrives.
Explore how AI and LLMs interact with React, and why their non-deterministic behavior can lead to hallucinations or maintenance challenges. Learn strategies to elicit reliable React code from language models.
Learn to prompt an AI for React code with specific patterns, version guidance, and concrete prompts like a counter using use state, ensuring maintainable, secure, and high-quality output.
Develop an accurate mental model of React, understand how it really works, and use that knowledge to build and debug with confidence rather than imitate or copy what others type.
Master an accurate React mental model in record time! Don't just copy code. Understand React.
Most React tutorials teach you to type along like a robot. You end up with working code but no real understanding of why it works. When bugs appear, or your faced with challenges you didn't see in the projects you imitated, you're stuck.
This course is different. Build an accurate mental model of React's core concepts so you can debug faster, make better architectural decisions, write clean maintainable code, and direct an LLM properly to generate React code.
What You'll Learn
Components & JSX
What components really are and why they must be "pure"
How JSX works under the hood and why its rules exist
What props are and how they work
Writing semantic, maintainable component markup
Reconciliation and the Fiber Tree
How React works under-the-hood
Where React actually stores information
Hooks
useState: Why immutability matters and how React detects changes
useReducer: When to choose reducers over simple state
Modern Data Fetching
Master React 19's new use hook for clean async code
Understand Suspense boundaries
AI and LLM Prompting
Use your knowledge to properly prompt an AI
Get the best results from an LLM generating React apps
I've read all of React's source code, and have given popular talks at React Summit (the world's biggest React conference). Join me in understanding React!
Prerequisites
Basic JavaScript (functions, objects, arrays)
HTML and CSS familiarity
No prior React experience required