The Joy of React

25h 35m 33s
English
Paid

Course description

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.

Watch Online

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

Watch Online The Joy of React

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

Comments

0 comments

Want to join the conversation?

Sign in to comment

Similar courses

React Formula - Learn Frontend Development

React Formula - Learn Frontend Development

Sources: Alvin Zablan
Learn how to create modern interfaces using React, Tailwind CSS, and other tools. Most React textbooks are not designed for real-world...
23 hours 47 minutes 37 seconds
Solidity & Ethereum in React (Next JS): The Complete Guide

Solidity & Ethereum in React (Next JS): The Complete Guide

Sources: udemy
Create real Smart Contracts in Solidity and DApps with React & Next JS. Understand how the Ethereum blockchain works.
38 hours 47 minutes 24 seconds
The Software Architect Mindset (COMPLETE)

The Software Architect Mindset (COMPLETE)

Sources: ArjanCodes
The course "The Software Architect Mindset" teaches the fundamentals of software architecture and provides practical advice on creating software products...
12 hours 6 minutes 39 seconds
Add React Storybook to a Project

Add React Storybook to a Project

Sources: egghead
In this lesson, we show how to setup React Storybook into an existing React project. We’ll go through common configuration files and how to adjust them.
3 minutes 36 seconds
MERN Stack React, Socket io, Next.js Express,MongoDb, Nodejs

MERN Stack React, Socket io, Next.js Express,MongoDb, Nodejs

Sources: udemy
If you are a person who is not picky about a CSS framework and wants to learn how to create enterprise-grade, practical full stack app using new technologies, then this course i...
13 hours 2 minutes 12 seconds