Skip to main content
CF

The Joy of React

25h 35m 33s
English
Paid
Updated February 2024

The all-new interactive learning experience that teaches you how to build rich, dynamic web apps with React.

So, let’s be real. Learning React is hard.

Over the past few years, React has become a “must-have” skill for front-end developers. Just about every job posting lists it as a pre-requisite!

If you’ve tried to learn React, though, you know it can be confusing and overwhelming. There’s just so much to know, and most of the tutorials out there assume a ton of prior knowledge and context.

Maybe you’ve gotten stuck in tutorial hell, following tutorial after tutorial without ever making tangible progress, like a mouse on a running wheel. You’ve built so many dang “Todo list” apps now, and yet when you try to build your own project, you don’t know where to start.

You want to learn React, but you’ve struggled. 

I want to help.

For the past two years, I’ve been hard at work building the ultimate beginner-friendly React course.

The Joy of React is an interactive course. You won’t just sit and watch me code. There are tons of exercises, real-world-inspired projects, and fun mini-games and activities. It’s not like any other course you’ve taken before (unless you’ve taken my CSS course, in which case, it’s quite a bit like that).

We learn React from the ground up, building a robust mental model we can use to understand React and solve hard problems. I’ll share the dozens of epiphanies I’ve had after almost a decade of professional React experience.

We won’t just learn about React, either; we cover everything you need to know to succeed as a React developer, including modern JavaScript syntax, along with a ton of helpful community tools and packages.

The truth is, React is a joy to use.

Once you get the hang of it, React is a dream. I’ve tried most popular JS frameworks, and nothing else makes me feel as empowered as React.

I care a lot about the user experience, including things like performance, accessibility, polish. Getting this stuff right is not easy. But the React community has stepped up, and there are so many wonderful solutions we can leverage.

We first need to build a rock-solid foundation, to truly understand React conventions and best practices. Then, we’ll see how “secret weapon” community packages extend our reach.

This is a recipe for uninterrupted flow state. It’s pure joy, and I want you to experience it.

Let me tell you how The Joy of React will make it so.

Module 1 React Fundamentals

In this first module, we introduce React, and build a common understanding we'll use throughout the course.

We'll learn all about JSX, components, and props. We'll discover how to do iteration and conditional rendering in React. We'll also cover styling in React.

As someone who has taught React to hundreds of students in-person, I know what all of the common early stumbling blocks are, and we address them head-on in this module.

We go surprisingly deep in this module. By the end of Module 1, you'll understand how JSX differs from a templating language, what a React element is, why keys are necessary… you'll even build your own stateless mini-React from scratch, so you know exactly how it works under-the-hood!

Module 2 Working With State

The real magic starts with state. React state allows us to make dynamic applications that feel alive.

In this module, we learn how to use event handlers and the React  hook to update the UI based on user actions. We'll learn how to wire up forms, how to work with complex state structures, and how to manage state across the application.

We'll also deepen our understanding of how React works. We'll learn why React sometimes feels so much more complicated than other frameworks. We'll discover the crucial role that React component instances play. And we'll learn how to leverage best practices like lifting state up.

There are lots of fun exercises in this module. We build a couple of mini-games, and see how to build a minimal version of my Gradient Generator project.

Module 3 React Hooks

In 2019, React was revolutionized with the addition of hooks. Hooks allow us to “hook into” React internals.

In this module, we go beyond the  hook, and cover things like:

  • Managing side effects with the  hook.
  • Capturing DOM references with the  hook.
  • Optimizing the performance of our applications with  and .
  • Creating our own abstractions with custom hooks.
  • Fetching data from the network with Fetch + the third-party hook.

Stuff gets real in this module. We cover some of the hardest concepts in React, like avoiding stale values in our side effects. To help us make sense of the hard stuff, we double down on our efforts to understand how React ticks, learning why immutability is so important, what exactly a “render” is, and more.

Module 4 Component API Design

At this point in the course, we've covered a good chunk of the React API, but we've been focusing on how everything works. In this module, our focus starts to shift.

The components we create should be a joy to use: they should be easy to understand, composable, and offer the right amount of flexibility. Even more critically, they should offer a wonderful user experience, in terms of accessibility, usability, and performance.

This module is all about refining our thinking around components. I'll teach you the mental models I use every day when deciding how I want to structure my code.

We'll cover a ton of practical tips and tricks in this module, from polymorphism to prop delegation to compound components and slots. You'll also learn about React Context, and see how it can be useful in achieving our goals.

Accessibility is a focus throughout the course, but we really lean into it in this module. We'll build notoriously-tricky components like modals from scratch, with a focus on usability and accessibility, and see why it's probably a better idea to use a library.

Module 5 Happy Practices

I started working with React in 2015, and I've learned so much along the way. My goal with this module is to help you skip a few years of experimentation, and jump straight to the patterns and practices that are a delight to use.

In the dev community, we talk a lot about “Best Practices”, but really, there's no such thing as a best practice. It depends what you're optimizing for! It's all trade-offs.

In this module, I'll share my favourite “Happy Practices”, the design patterns and habits I've been refining over 8 years, things that just make it enjoyable to work with React.

Here's a few examples of what we'll cover:

  • The Principle of Least Privilege, and why I give components as little knowledge/power as possible.
  • The distinction between parents and owners, and how we can simplify our code and improve performance in one fell swoop.
  • The magic of Immer, and how it makes complex state much less scary.
  • Really getting to understand things like React elements, refs, and keys, and how a deep understanding exposes entirely new patterns we can take advantage of.

Module 6 Full-Stack React

In this module, we go beyond the browser and explore how React works in a full-stack context, using Next.js.

Next.js is a meta-framework, built on top of React. It's been around since 2016, but was recently totally rebuilt from the ground up. In May 2023, Next brought its new “App” router out of beta, and ushered in the start of a new era in React.

In this module, we'll learn how to build performant full-stack applications using the latest version of Next.js. We cover all of the shiny new tech, including:

  • React Server Components
  • Suspense
  • Streaming Server Side Rendering w/ Selective Hydration
  • Next.js App Router

We'll learn how these things work, but also how they fit together to deliver incredible next-level user experiences. This stuff is bleeding-edge, and this course is one of the first in-depth resources to really explore this new world.

This is the module where everything comes together. Using everything we learned over the first 5 modules of the course, we'll build dynamic full-stack React applications, from project initialization to deploy.

Capstone Projects

Everything you learn in the modules will be reinforced and solidified in 3 challenging projects, woven between the modules. You'll use your newfound skills to build:

Project 1 Word Game

One of the best ways to learn React is by building games. In this first project, we build a clone of Wordle, a popular online word-guessing game.

The main focus of this project is to get comfortable with React state, but it also exposes us to some really interesting questions around application structure. You'll need to decide how you want state to move through the application, and consider different tradeoffs!

Project 2Toast Playground

We build a reusable, low-level  component!

This is way harder than it seems. The component we build will adhere to all accessibility guidelines, with a focus on usability and user experience. We'll also put a lot of thought into its API design, making sure it's composable and flexible.

We'll also build a mini app to help us customize and generate toasts.

A few years back, I created a React curriculum for a local coding bootcamp, and it featured a project like this, building a seemingly-straightforward UI component. Students have said that this is a really eye-opening exercise.

Project 3 Interactive MDX-Based Blog

When I created my blog back in 2018, I didn't want to make a boring ol’ static blog. I wanted to create custom, bespoke widgets that would help the reader learn a concept by doing.

In this final project, we'll build the ultimate blog. You'll learn exactly how to set things up so that you have the full power of React available to you within the content.

Bonus Module Layout Animations with Framer Motion

Framer Motion is one of the most incredible tools in the React ecosystem. In this bonus module, you'll learn how to use its “layout projection” engine to do truly remarkable, seemingly-impossible layout animations.

This is honestly one of the best “secret weapon” packages in my arsenal, and I'm psyched to show you how I use it!

Bonus Feature React Technical Interview Prep

When it comes to getting hired as a React developer, one of the trickiest parts is the technical interview.

In this bonus feature, I'll help you prepare by giving you interview-style challenges, and then showing you how I would tackle them.

This bonus feature will be released later in 2023.

Additional

All videos extracted from html pages. Find HTML files at course materials. Find code examples in codesandbox txt file.


  • Module 1 React Fundamentals - lesson 1 - 25
  • Module 2 Working With State - lesson 26 - 45
  • Project Word Game - lesson 46 - 52
  • Module 3 React Hooks - lesson 53 - 96
  • Module 4 Component API Design - lesson 97 - 125 
  • Project Toast Component - lesson 126 - 131
  • Module 5 Happy Practices - lesson 132 - 163
  • Module 6 Full Stack React - lesson 164 - 193
  • Bonus Module Layout Animations with Framer Motion - lesson 194 - 207
  • Project Interactive MDX-Based Blog - lesson 208 - 219
  • Tools of the Trade - lesson 220 - 222

About the Author: Josh Comeau

Josh Comeau thumbnail

Josh Comeau is a Canadian developer and one of the most cited independent voices on modern CSS and React — known for the unusual care and clarity of his teaching. He runs joshwcomeau.com (a long-running technical blog), publishes the CSS for JavaScript Developers course (one of the most highly-regarded modern CSS resources), and the Joy of React course.

His CourseFlix listing carries three Josh Comeau courses: The Joy of React, CSS for JavaScript Developers, and Whimsical Animations. The teaching style favours interactive examples, animated explanations, and unusually patient pacing — Josh's courses are widely cited as some of the highest-quality material in the modern web-development education market.

Material is paid and aimed at intermediate web developers ready to deepen their craft. For broader content, see CourseFlix's React.js, CSS, and Web Animations category pages.

Watch Online 239 lessons

This is a demo lesson (10:00 remaining)

You can watch up to 10 minutes for free. Subscribe to unlock all 239 lessons in this course and access 10,000+ hours of premium content across all courses.

View Pricing
0:00
/
#1: 001 - Welcome!
All Course Lessons (239)
#Lesson TitleDurationAccess
1
001 - Welcome! Demo
03:00
2
002 - Hello React
03:43
3
003 - Build Your Own React
05:14
4
004 - Expression Slots
05:02
5
005 - Fix The Converter -
01:55
6
006 - The Whitespace Gotcha
03:18
7
007 - Exercises
03:20
8
008 - Exercises
05:18
9
009 - Thinking in Components
04:11
10
010 - Props
06:29
11
011 - Exercises
02:21
12
012 - Exercises
06:29
13
013 - Fragments
02:35
14
014 - Mapping Over Data
04:21
15
015 - Keys
05:09
16
016 - Exercises
03:56
17
017 - Exercises
05:17
18
018 - Exercises
01:53
19
019 - Exercises
04:56
20
020 - Exercises
03:04
21
021 - Exercises
04:09
22
022 - Styling In React
04:09
23
023 - CSS Modules
05:17
24
024 - Exercises
03:40
25
025 - Exercises
03:37
26
026 - Exercises
02:15
27
027 - Exercises
02:16
28
028 - Asynchronous Updates
03:41
29
029 - Exercises
04:49
30
030 - Exercises
04:23
31
031 - Why the Dance
09:32
32
032 - Data Binding
08:28
33
033 - Exercises
08:10
34
034 - Exercises
02:40
35
035 - Exercises
08:37
36
036 - Props Vs. State
04:05
37
037 - Mutation Bugs
07:27
38
038 - Exercises
09:08
39
039 - Exercises
04:12
40
040 - Dynamic Key Generation
08:36
41
041 - Key Gotchas
12:05
42
042 - Lifting State Up
09:28
43
043 - Exercises
01:42
44
044 - Exercises
08:22
45
045 - Component Instances
08:42
46
046 - About This Project
03:15
47
047 - Getting Started
04:32
48
048 - Solution
10:46
49
049 - Solution
14:03
50
050 - hhdfnang
09:07
51
051 - ogfbmgeg
09:09
52
052 - fgfcikbp
16:04
53
053 - - 1920x1080 3305K
06:02
54
054 - - 1920x1080 3066K
07:00
55
055 - Rules of Hooks
06:00
56
056 - Exercises
03:12
57
057 - Exercises
03:50
58
058 - Immutability Revisited
09:10
59
059 - Refs
06:09
60
060 - Exercises
02:20
61
061 - Exercises
04:24
62
062 - Side Effects
04:09
63
063 - The useEffect hook
07:44
64
064 - Exercises
02:59
65
065 - Exercises
05:23
66
066 - Effect Lint Rules
04:34
67
067 - Running on Mount
03:43
68
068 - Running on Mount
04:48
69
069 - Exercises
01:19
70
070 - Exercises
02:15
71
071 - Exercises
03:58
72
072 - Exercises
05:51
73
073 - Cleanup
06:55
74
074 - Cleanup
07:14
75
075 - Cleanup Exercises
00:56
76
076 - Cleanup Exercises
01:31
77
077 - Cleanup Exercises
02:40
78
078 - Cleanup Exercises
05:33
79
079 - Stale Values
11:33
80
080 - Stale Values
03:16
81
081 - Exercises
04:27
82
082 - Strict Mode
06:39
83
083 - Strict Mode
04:08
84
084 - Custom Hooks
04:35
85
085 - Exercises
02:31
86
086 - Exercises
08:18
87
087 - Exercises
05:19
88
088 - Fetching on Event
03:55
89
089 - Fetching on Event
07:20
90
090 - Fetching on Mount
05:30
91
091 - Exercises
11:28
92
092 - Exercises
04:54
93
093 - Exercises
01:10
94
094 - Exercises
03:16
95
095 - Exercises
10:10
96
096 - Alternatives
07:00
97
097 - Introduction
04:24
98
098 - The Spectrum of Components
08:39
99
099 - Exercises
05:41
100
100 - Exercises
07:09
101
101 - Prop Delegation
03:35
102
102 - Exercises
03:09
103
103 - Exercises
05:28
104
104 - Delegating Styles
03:19
105
105 - Forwarding Refs
09:10
106
106 - Exercises
01:45
107
107 - Exercises
01:24
108
108 - Polymorphism
07:27
109
109 - Exercises
06:55
110
110 - Exercises
04:13
111
111 - Slots
10:18
112
112 - Exercises
03:05
113
113 - Exercises
05:58
114
114 - The Problem
09:26
115
115 - Exercises
02:44
116
116 - Exercises
02:41
117
117 - Provider Components
06:49
118
118 - Performance
05:16
119
119 - Performance
05:52
120
120 - Modals
15:17
121
121 - Exercises
11:10
122
122 - Converting Our Modal
10:29
123
123 - Exercises
04:56
124
124 - Exercises
03:01
125
125 - Exercises
05:40
126
126 - Solution
05:33
127
127 - Solution
05:49
128
128 - Solution
10:37
129
129 - Solution
07:30
130
130 - edfhjakg
14:04
131
131 - fpooaoln
07:40
132
132 - Leveraging Keys
04:01
133
133 - Leveraging Keys
05:53
134
134 - Leveraging Keys
06:55
135
135 - Exercises
01:28
136
136 - Exercises
04:49
137
137 - Exercises
03:42
138
138 - Elements Revisited
02:02
139
139 - Elements Revisited
12:00
140
140 - Deriving State
13:35
141
141 - Exercises
02:20
142
142 - Exercises
01:54
143
143 - Exercises
07:36
144
144 - Lifting Content Up
04:19
145
145 - Lifting Content Up
04:17
146
146 - Exercises
06:29
147
147 - Single Source of Truth
08:01
148
148 - Exercises
03:57
149
149 - Exercises
04:03
150
150 - Principle of Least Privilege
05:26
151
151 - Exercises
04:21
152
152 - useReducer
10:02
153
153 - Exercises
01:51
154
154 - Exercises
07:07
155
155 - Exercises
06:51
156
156 - Exercises
04:17
157
157 - Exercises
04:28
158
158 - Exercises
15:21
159
159 - Portals
11:03
160
160 - Exercise
04:05
161
161 - Exercise
05:17
162
162 - Refs Revisited
09:22
163
163 - Error Boundaries
06:01
164
164 - - 1920x1080
10:03
165
165 - React Server Components
12:02
166
166 - Hello Next!
08:35
167
167 - Exercises
02:46
168
168 - Exercises
03:54
169
169 - Client Components
17:16
170
170 - Exercises
03:55
171
171 - Exercises
05:03
172
172 - Exercises
04:30
173
173 - Exercises
09:16
174
174 - SSR Gotchas
07:51
175
175 - SSR Exercises
06:20
176
176 - SSR Exercises
07:46
177
177 - SSR Exercises
04:16
178
178 - Page Transitions
09:39
179
179 - Dynamic Segments
05:42
180
180 - Exercises
02:36
181
181 - Exercises
06:05
182
182 - Next's Metadata API
03:59
183
183 - Starting a New Project - 1952x1080
03:49
184
184 - Building for Production
06:11
185
185 - Building for Production
04:38
186
186 - Exercises
03:02
187
187 - React Cache
06:46
188
188 - An Exciting New World
16:15
189
189 - Graphing It Out
07:52
190
190 - Suspense Exercises
04:23
191
191 - Suspense Exercises
04:15
192
192 - jbjdnpaj
07:13
193
193 - Dark Mode
15:12
194
194 - Getting Started
06:57
195
195 - Exercises
02:49
196
196 - Exercises
06:35
197
197 - Layout Animations
11:06
198
198 - Layout Exercises
02:06
199
199 - Layout Exercises
02:57
200
200 - Shared Layout
09:22
201
201 - Working With Groups
13:43
202
202 - Working With Groups
03:56
203
203 - Shared Layout Exercises
01:31
204
204 - Shared Layout Exercises
06:45
205
205 - Shared Layout Exercises
05:23
206
206 - One Last Exercise
07:05
207
207 - One Last Exercise
09:26
208
208 - - 1920x1080
03:47
209
209 - - 1920x1080
05:23
210
210 - Solution
05:06
211
211 - Solution
05:33
212
212 - Solution
06:42
213
213 - Solution
02:57
214
214 - ccobbnfj
09:05
215
215 - pbjemcph
10:33
216
216 - egfjagcc
09:06
217
217 - nkfhacjj
09:53
218
218 - jcppdheb
11:35
219
219 - Suspense Investigations
05:52
220
220 - Navigation
03:13
221
221 - Tips N’ Tricks
02:03
222
222 - Webpack
05:32
223
001 - Cover Letters
04:05
224
002 - Cover Letters
02:37
225
003 - Cover Letters
02:13
226
004 - Technical Interviews
05:30
227
005 - FizzBuzz
04:17
228
006 - Scroll Position
06:34
229
007 - Todo App
11:02
230
008 - Project Euler
10:19
231
009 - Starfield Button
22:48
232
010 - Multi-Step Signup
36:27
233
011 - Trello Clone
24:56
234
012 - Clicking Outside
14:18
235
013 - Multi Checkbox
21:41
236
014 - Fetch Race Condition
01:27
237
015 - Fetch Race Condition
11:05
238
016 - Fetch Race Condition
04:33
239
017 - useEffectSkipMount
12:19
Unlock unlimited learning

Get instant access to all 238 lessons in this course, plus thousands of other premium courses. One subscription, unlimited knowledge.

Learn more about subscription

Course content

239 lessons · 25h 35m 33s
Show all 239 lessons
  1. 1 001 - Welcome! 03:00
  2. 2 002 - Hello React 03:43
  3. 3 003 - Build Your Own React 05:14
  4. 4 004 - Expression Slots 05:02
  5. 5 005 - Fix The Converter - 01:55
  6. 6 006 - The Whitespace Gotcha 03:18
  7. 7 007 - Exercises 03:20
  8. 8 008 - Exercises 05:18
  9. 9 009 - Thinking in Components 04:11
  10. 10 010 - Props 06:29
  11. 11 011 - Exercises 02:21
  12. 12 012 - Exercises 06:29
  13. 13 013 - Fragments 02:35
  14. 14 014 - Mapping Over Data 04:21
  15. 15 015 - Keys 05:09
  16. 16 016 - Exercises 03:56
  17. 17 017 - Exercises 05:17
  18. 18 018 - Exercises 01:53
  19. 19 019 - Exercises 04:56
  20. 20 020 - Exercises 03:04
  21. 21 021 - Exercises 04:09
  22. 22 022 - Styling In React 04:09
  23. 23 023 - CSS Modules 05:17
  24. 24 024 - Exercises 03:40
  25. 25 025 - Exercises 03:37
  26. 26 026 - Exercises 02:15
  27. 27 027 - Exercises 02:16
  28. 28 028 - Asynchronous Updates 03:41
  29. 29 029 - Exercises 04:49
  30. 30 030 - Exercises 04:23
  31. 31 031 - Why the Dance 09:32
  32. 32 032 - Data Binding 08:28
  33. 33 033 - Exercises 08:10
  34. 34 034 - Exercises 02:40
  35. 35 035 - Exercises 08:37
  36. 36 036 - Props Vs. State 04:05
  37. 37 037 - Mutation Bugs 07:27
  38. 38 038 - Exercises 09:08
  39. 39 039 - Exercises 04:12
  40. 40 040 - Dynamic Key Generation 08:36
  41. 41 041 - Key Gotchas 12:05
  42. 42 042 - Lifting State Up 09:28
  43. 43 043 - Exercises 01:42
  44. 44 044 - Exercises 08:22
  45. 45 045 - Component Instances 08:42
  46. 46 046 - About This Project 03:15
  47. 47 047 - Getting Started 04:32
  48. 48 048 - Solution 10:46
  49. 49 049 - Solution 14:03
  50. 50 050 - hhdfnang 09:07
  51. 51 051 - ogfbmgeg 09:09
  52. 52 052 - fgfcikbp 16:04
  53. 53 053 - - 1920x1080 3305K 06:02
  54. 54 054 - - 1920x1080 3066K 07:00
  55. 55 055 - Rules of Hooks 06:00
  56. 56 056 - Exercises 03:12
  57. 57 057 - Exercises 03:50
  58. 58 058 - Immutability Revisited 09:10
  59. 59 059 - Refs 06:09
  60. 60 060 - Exercises 02:20
  61. 61 061 - Exercises 04:24
  62. 62 062 - Side Effects 04:09
  63. 63 063 - The useEffect hook 07:44
  64. 64 064 - Exercises 02:59
  65. 65 065 - Exercises 05:23
  66. 66 066 - Effect Lint Rules 04:34
  67. 67 067 - Running on Mount 03:43
  68. 68 068 - Running on Mount 04:48
  69. 69 069 - Exercises 01:19
  70. 70 070 - Exercises 02:15
  71. 71 071 - Exercises 03:58
  72. 72 072 - Exercises 05:51
  73. 73 073 - Cleanup 06:55
  74. 74 074 - Cleanup 07:14
  75. 75 075 - Cleanup Exercises 00:56
  76. 76 076 - Cleanup Exercises 01:31
  77. 77 077 - Cleanup Exercises 02:40
  78. 78 078 - Cleanup Exercises 05:33
  79. 79 079 - Stale Values 11:33
  80. 80 080 - Stale Values 03:16
  81. 81 081 - Exercises 04:27
  82. 82 082 - Strict Mode 06:39
  83. 83 083 - Strict Mode 04:08
  84. 84 084 - Custom Hooks 04:35
  85. 85 085 - Exercises 02:31
  86. 86 086 - Exercises 08:18
  87. 87 087 - Exercises 05:19
  88. 88 088 - Fetching on Event 03:55
  89. 89 089 - Fetching on Event 07:20
  90. 90 090 - Fetching on Mount 05:30
  91. 91 091 - Exercises 11:28
  92. 92 092 - Exercises 04:54
  93. 93 093 - Exercises 01:10
  94. 94 094 - Exercises 03:16
  95. 95 095 - Exercises 10:10
  96. 96 096 - Alternatives 07:00
  97. 97 097 - Introduction 04:24
  98. 98 098 - The Spectrum of Components 08:39
  99. 99 099 - Exercises 05:41
  100. 100 100 - Exercises 07:09
  101. 101 101 - Prop Delegation 03:35
  102. 102 102 - Exercises 03:09
  103. 103 103 - Exercises 05:28
  104. 104 104 - Delegating Styles 03:19
  105. 105 105 - Forwarding Refs 09:10
  106. 106 106 - Exercises 01:45
  107. 107 107 - Exercises 01:24
  108. 108 108 - Polymorphism 07:27
  109. 109 109 - Exercises 06:55
  110. 110 110 - Exercises 04:13
  111. 111 111 - Slots 10:18
  112. 112 112 - Exercises 03:05
  113. 113 113 - Exercises 05:58
  114. 114 114 - The Problem 09:26
  115. 115 115 - Exercises 02:44
  116. 116 116 - Exercises 02:41
  117. 117 117 - Provider Components 06:49
  118. 118 118 - Performance 05:16
  119. 119 119 - Performance 05:52
  120. 120 120 - Modals 15:17
  121. 121 121 - Exercises 11:10
  122. 122 122 - Converting Our Modal 10:29
  123. 123 123 - Exercises 04:56
  124. 124 124 - Exercises 03:01
  125. 125 125 - Exercises 05:40
  126. 126 126 - Solution 05:33
  127. 127 127 - Solution 05:49
  128. 128 128 - Solution 10:37
  129. 129 129 - Solution 07:30
  130. 130 130 - edfhjakg 14:04
  131. 131 131 - fpooaoln 07:40
  132. 132 132 - Leveraging Keys 04:01
  133. 133 133 - Leveraging Keys 05:53
  134. 134 134 - Leveraging Keys 06:55
  135. 135 135 - Exercises 01:28
  136. 136 136 - Exercises 04:49
  137. 137 137 - Exercises 03:42
  138. 138 138 - Elements Revisited 02:02
  139. 139 139 - Elements Revisited 12:00
  140. 140 140 - Deriving State 13:35
  141. 141 141 - Exercises 02:20
  142. 142 142 - Exercises 01:54
  143. 143 143 - Exercises 07:36
  144. 144 144 - Lifting Content Up 04:19
  145. 145 145 - Lifting Content Up 04:17
  146. 146 146 - Exercises 06:29
  147. 147 147 - Single Source of Truth 08:01
  148. 148 148 - Exercises 03:57
  149. 149 149 - Exercises 04:03
  150. 150 150 - Principle of Least Privilege 05:26
  151. 151 151 - Exercises 04:21
  152. 152 152 - useReducer 10:02
  153. 153 153 - Exercises 01:51
  154. 154 154 - Exercises 07:07
  155. 155 155 - Exercises 06:51
  156. 156 156 - Exercises 04:17
  157. 157 157 - Exercises 04:28
  158. 158 158 - Exercises 15:21
  159. 159 159 - Portals 11:03
  160. 160 160 - Exercise 04:05
  161. 161 161 - Exercise 05:17
  162. 162 162 - Refs Revisited 09:22
  163. 163 163 - Error Boundaries 06:01
  164. 164 164 - - 1920x1080 10:03
  165. 165 165 - React Server Components 12:02
  166. 166 166 - Hello Next! 08:35
  167. 167 167 - Exercises 02:46
  168. 168 168 - Exercises 03:54
  169. 169 169 - Client Components 17:16
  170. 170 170 - Exercises 03:55
  171. 171 171 - Exercises 05:03
  172. 172 172 - Exercises 04:30
  173. 173 173 - Exercises 09:16
  174. 174 174 - SSR Gotchas 07:51
  175. 175 175 - SSR Exercises 06:20
  176. 176 176 - SSR Exercises 07:46
  177. 177 177 - SSR Exercises 04:16
  178. 178 178 - Page Transitions 09:39
  179. 179 179 - Dynamic Segments 05:42
  180. 180 180 - Exercises 02:36
  181. 181 181 - Exercises 06:05
  182. 182 182 - Next's Metadata API 03:59
  183. 183 183 - Starting a New Project - 1952x1080 03:49
  184. 184 184 - Building for Production 06:11
  185. 185 185 - Building for Production 04:38
  186. 186 186 - Exercises 03:02
  187. 187 187 - React Cache 06:46
  188. 188 188 - An Exciting New World 16:15
  189. 189 189 - Graphing It Out 07:52
  190. 190 190 - Suspense Exercises 04:23
  191. 191 191 - Suspense Exercises 04:15
  192. 192 192 - jbjdnpaj 07:13
  193. 193 193 - Dark Mode 15:12
  194. 194 194 - Getting Started 06:57
  195. 195 195 - Exercises 02:49
  196. 196 196 - Exercises 06:35
  197. 197 197 - Layout Animations 11:06
  198. 198 198 - Layout Exercises 02:06
  199. 199 199 - Layout Exercises 02:57
  200. 200 200 - Shared Layout 09:22
  201. 201 201 - Working With Groups 13:43
  202. 202 202 - Working With Groups 03:56
  203. 203 203 - Shared Layout Exercises 01:31
  204. 204 204 - Shared Layout Exercises 06:45
  205. 205 205 - Shared Layout Exercises 05:23
  206. 206 206 - One Last Exercise 07:05
  207. 207 207 - One Last Exercise 09:26
  208. 208 208 - - 1920x1080 03:47
  209. 209 209 - - 1920x1080 05:23
  210. 210 210 - Solution 05:06
  211. 211 211 - Solution 05:33
  212. 212 212 - Solution 06:42
  213. 213 213 - Solution 02:57
  214. 214 214 - ccobbnfj 09:05
  215. 215 215 - pbjemcph 10:33
  216. 216 216 - egfjagcc 09:06
  217. 217 217 - nkfhacjj 09:53
  218. 218 218 - jcppdheb 11:35
  219. 219 219 - Suspense Investigations 05:52
  220. 220 220 - Navigation 03:13
  221. 221 221 - Tips N’ Tricks 02:03
  222. 222 222 - Webpack 05:32
  223. 223 001 - Cover Letters 04:05
  224. 224 002 - Cover Letters 02:37
  225. 225 003 - Cover Letters 02:13
  226. 226 004 - Technical Interviews 05:30
  227. 227 005 - FizzBuzz 04:17
  228. 228 006 - Scroll Position 06:34
  229. 229 007 - Todo App 11:02
  230. 230 008 - Project Euler 10:19
  231. 231 009 - Starfield Button 22:48
  232. 232 010 - Multi-Step Signup 36:27
  233. 233 011 - Trello Clone 24:56
  234. 234 012 - Clicking Outside 14:18
  235. 235 013 - Multi Checkbox 21:41
  236. 236 014 - Fetch Race Condition 01:27
  237. 237 015 - Fetch Race Condition 11:05
  238. 238 016 - Fetch Race Condition 04:33
  239. 239 017 - useEffectSkipMount 12:19

Related courses

Frequently asked questions

What is The Joy of React about?
The all-new interactive learning experience that teaches you how to build rich, dynamic web apps with React. So, let’s be real. Learning React is hard. Over the past few years, React has become a “must-have” skill for…
Who teaches The Joy of React?
The Joy of React is taught by Josh Comeau. You can find more courses by this instructor on the corresponding source page.
How long is The Joy of React?
The Joy of React contains 239 lessons with a total runtime of 25 hours 35 minutes. All lessons are available to watch online at your own pace.
Is The Joy of React free to watch?
The Joy of React is part of CourseFlix's premium catalog. A CourseFlix subscription unlocks the full video player; the course description, table of contents, and preview information are available to everyone.
Where can I watch The Joy of React online?
The Joy of React is available to watch online on CourseFlix at https://courseflix.net/course/the-joy-of-react. The page hosts every lesson with the integrated video player; no download is required.