Learn React Fundamentals 🆓 and Advanced Patterns ⚛️ 🎁

December 4th, 2017 — 5 min read

Artwork for egghead.io is created by the amazing Maggie_Appleton
Artwork for egghead.io is created by the amazing Maggie_Appleton
No translations available.Add translation

I couldn't be more excited to introduce you to what I can call my best work to date: Two new video courses available now on egghead.io! The beginner material is free forever and the advanced stuff is worth a subscription so I encourage you to give them a look!

The Beginner's Guide to ReactJS

  1. Introduction to The Beginner's Guide to ReactJS (2:07)
  2. Write Hello World with raw React APIs (3:24)
  3. Use JSX with React (5:48)
  4. Create Custom React Components (5:15)
  5. Validate Custom React Component Props with PropTypes (3:30)
  6. Conditionally Render A React Component (2:43)
  7. Rerender a React Application (3:17)
  8. Style React Components (5:36)
  9. Use Event Handlers with React (3:42)
  10. Use Component State with React (7:09)
  11. Stop Memory Leaks with componentWillUnmount Lifecycle Method in React(1:14)
  12. Use Class Components with React (4:16)
  13. Manipulate the DOM with React refs (2:23)
  14. Make Basic Forms with React (3:35)
  15. Make Dynamic Forms with React (3:42)
  16. Controlling Form Values with React (8:48)
  17. Use the key prop when Rendering a List with React (4:29)
  18. Make HTTP Requests with React (3:29)
  19. Build and deploy a React Application (3:02)

This course is for React newbies and those looking to get a better understanding of React fundamentals. With a focus on React fundamentals, you'll come out of this course knowing what problems React can solve for you and how it goes about solving those problems. You will have a good grasp on what JSX is and how it translates to regular JavaScript function calls and objects.

Each lesson in this course is just a single index.html file which will help you keep your focus on learning React and not distracted by all the tools that make production applications work. The course wraps up with a lesson on how to move from these index.html files to a more production ready development environment and even how to deploy your app to a great service like Netlify.


Advanced React Component Patterns

  1. Introducing Advanced React Component Patterns (1:44)
  2. Build a Toggle Component (2:01)
  3. Write Compound Components (4:06)
  4. Make Compound React Components Flexible (4:01)
  5. Make Enhanced React Components with Higher Order Components (3:22)
  6. Handle prop namespace clashes with Higher Order Components (3:47)
  7. Improve debuggability of Higher Order Components (4:43)
  8. Handle ref props with Higher Order Components (2:54)
  9. Improve Unit Testability of Higher Order Components (2:45)
  10. Handle static properties properly with Higher Order Components (3:02)
  11. Use Render Props with React (5:25)
  12. Use Prop Collections with Render Props (2:05)
  13. Use Prop Getters with Render Props (6:12)
  14. Use Component State Initializers (2:46)
  15. Make Controlled React Components with Control Props (4:06)
  16. Implement a React Context Provider (6:47)
  17. Implement a Higher Order Component with Render Props (1:52)
  18. Rerender Descendants Through shouldComponentUpdate (3:19)
  19. Use Redux with Render Props (6:49)

The goal of this course is to give you the knowledge of advanced patterns you can use to make React components that are more flexible, simpler, and more fun to build, use, and maintain. We'll start with a simple <Toggle /> component which we'll progressively refactor to each of the patterns so you can see the relative trade-offs of the patterns and how they can be used together to increase the usefulness of your component while at the same time simplifying things for everyone.

Having built and shipped components using each of these patterns, I'll help you understand and weigh the tradeoffs of each of them and you'll come to intuitively know where to apply each pattern in your own components. When you're finished with this course, hopefully you'll have a list of actionable things you can do to rework the components that you're building to make them more flexible, simpler, and more fun to build, use, and maintain.


Free! 🤑

The Beginner's course is joining the ever growing egghead.io "Community Resources" which means it will be free forever! I'm totally amazed by egghead and all the free stuff they sponsor. Thank you egghead!!

The Advanced course was free for a week but is now used to fund egghead's community resources by converting to subscriber-only content. Now's the best time to get a pro account. egghead very rarely does sales, but it's running one right now! For a limited time, you can get an egghead subscription for 30% off. See egghead.io/gifts for more information.


I've made a twitter moment with some reactions to the courses. Here are some of my personal favorites:

Leo Ijebor avatar
Leo Ijebor @leoijebor
If you want to learn @reactjs / improve your skills, you should check out the free @eggheadio courses by @kentcdodds - he's not only a nice guy but also a great teacher! 3 x more binge-worthy than Netflix 💪
Kent C. Dodds 🌌 avatar
Kent C. Dodds 🌌 @kentcdodds
⚛️🎁⚛️🎁⚛️🎁⚛️🎁⚛️🎁⚛️🎁⚛️🎁⚛️🎁⚛️🎁 Here's my big announcement! My @eggheadio courses have been published and are totally FREE! “Learn React Fundamentals and Advanced Patterns” ⚛️🎁⚛️🎁⚛️🎁⚛️🎁⚛️🎁⚛️🎁⚛️🎁⚛️🎁⚛️🎁
rossipedia 🇺🇦 avatar
rossipedia 🇺🇦 @rossipedia
TFW you've been programming for two decades and think "yeah I probably know everything in @kentcdodds's advance react course already" then you watch it and go "shit... that's actually a really good tip" 🤔 #humbling #AlwaysBeLearning
Tolulope avatar
Tolulope @afrocode_
The react router source code I had been trying to wrap my head around just became clearer after watching @kentcdodds advanced react component patterns video. I just became smarter all of a sudden lol 🙏

I'm really excited by all these positive responses! Thanks everyone!


I can't tell you how excited I am for you to watch these things! If you learn anything or enjoy the courses, I would ask you to do any of the following:

  1. Become an egghead.io subscriber to help support the community resources and get access to the 2500+ videos already on there!
  2. Tweet this blog post! Or retweet my tweet about it :)
  3. Upvote and discuss this blog post and the courses on Reddit
  4. Follow me on twitter to keep up with what I work on next
  5. Subscribe to my weekly newsletter 💌
  6. Write a blog post about your experience watching my courses!
Kent C. Dodds 🌌 avatar
Kent C. Dodds 🌌 @kentcdodds
⚛️🎁⚛️🎁⚛️🎁⚛️🎁⚛️🎁⚛️🎁⚛️🎁⚛️🎁⚛️🎁 Here's my big announcement! My @eggheadio courses have been published and are totally FREE! “Learn React Fundamentals and Advanced Patterns” ⚛️🎁⚛️🎁⚛️🎁⚛️🎁⚛️🎁⚛️🎁⚛️🎁⚛️🎁⚛️🎁

Thanks everyone! And Merry Christmas! 🎁 🎄

Epic React

Get Really Good at React

Illustration of a Rocket
Kent C. Dodds
Written by Kent C. Dodds

Kent C. Dodds is a JavaScript software engineer and teacher. Kent's taught hundreds of thousands of people how to make the world a better place with quality software development tools and practices. He lives with his wife and four kids in Utah.

Learn more about Kent

Want to learn more?

Join Kent in a live workshop

If you found this article helpful.

You will love these ones as well.