This site runs best with JavaScript enabled.

Learn React Fundamentals πŸ†“ and Advanced Patterns βš›οΈ 🎁

Artwork for is created by the amazing Maggie_Appleton

Two and a half hours of new beginner (free) and advanced React material are now available!

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! 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 "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 for more information.


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

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 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!

Thanks everyone! And Merry Christmas! 🎁 πŸŽ„

Discuss on Twitter β€’ Edit post on GitHub

Share article

Get Really Good at React

Blast Off

Write professional React.

Kent C. Dodds

Kent C. Dodds is a JavaScript software engineer and teacher. He'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.

Join the Newsletter

Kent C. Dodds