Back to overview

Join Kent C. Dodds for "Advanced React APIs"

Not currently scheduled

Sign up to be notified when this workshop is scheduled

The problem statement

Managing complex component state with basic hooks like useState can quickly become unwieldy.

Creating shared logic across components without causing unnecessary re-renders can be tricky.

Sometimes React's declarative approach isn't enough, and we need escape hatches to handle imperative tasks.

You need advanced techniques like portals to work with complex UIs that need to render outside the component tree.

At the end of this workshop you'll be able to do all of these things yourself.

Here's why you should register for the workshop.

Register here
  1. 01.Manage Complex State with useReducer

    Learn how useReducer can help you consolidate and manage complex state logic in a clean, maintainable way.

  2. 02.Share State Across Components with Context

    Discover how React’s Context API can expose shared state across your application without prop drilling.

  3. 03.Control Imperative Logic with useImperativeHandle

    When React's declarative approach doesn't cut it, you'll learn how to use useImperativeHandle for imperative control.

  4. 04.Render Outside the Tree with createPortal

    Explore how portals can help you render UI elements like modals or tooltips outside of the normal DOM hierarchy.

  5. 05.Sync React with External State

    Learn how to keep React in sync with external data sources using useSyncExternalStore and ensure server rendering works as expected.

The topics we will be covering.

This is what we will talk about.

    01.
    Dive into useReducer for managing complex component state
    02.
    Use Context and createContext to share values without prop drilling
    03.
    Build more flexible UIs with createPortal for rendering elements outside of the DOM tree
    04.
    Handle layout-related side effects using useLayoutEffect for better UI consistency
    05.
    Expose imperative actions to parent components with useImperativeHandle
    06.
    Manage focus and synchronization issues with flushSync to optimize user experience
    07.
    Sync React with external data sources using useSyncExternalStore and handle server rendering use-cases
Required experience

You should be comfortable with React hooks (useState, useEffect, useContext) and have experience building reusable components and hooks.

Important Note

Depending on the questions asked during the workshop, or necessary changes in the material, the actual content of the workshop could differ from the above mentioned topics.

What to expect from a Kent C. Dodds workshop

My primary goal is retention. If you can't remember what I've taught you, then the whole experience was a waste of our time.

With that in mind, we'll follow the teaching strategy I've developed over years of teaching (learn more about my teaching strategy here).

The short version is, you'll spend the majority of time working through exercises that are specifically crafted to help you experiment with topics you may have never experienced before. I intentionally put you into the deep end and let you struggle a bit to prepare your brain for the instruction.

Based on both my personal experience and scientific research around how people learn, this is an incredibly efficient way to ensure you understand and remember what you're learning. This is just one of the strategies I employ to improve your retention. I think you'll love it!

I'm excited to be your guide as we learn together!

Don't just take my word for it.

What others have to say

Even with nearly 2 years of React experience, EpicReact.dev helped me to refresh and even learn better the basic stuff and apply more advanced patterns to real use cases.

Vasilis Drosatos profile

Vasilis Drosatos

Senior Frontend Developer

I was speechless the moment Kent C Dodds started teaching me about Compound Components, In Epic React Course. The quality of content he puts on for the community is incredible.

Amandeep Kochhar profile

Amandeep Kochhar

Full Stack Developer

Have a look at my other workshops.

Learn more in these workshops.