0Pricing
React Academy · Lesson

Memoizing Context Values with useMemo

Wrap context value objects in useMemo so consumers don't re-render unnecessarily.

Welcome

In this lesson you will learn why context value objects must be memoized with useMemo, and how to correctly set up dependencies to avoid unnecessary re-renders.

The Object Reference Problem

Every time a Provider component re-renders, a new object literal `{ ... }` is created as the context value — even if the contents are the same. All consumers re-render because the reference changed.
// Every render creates a new object!
<UserCtx.Provider value={{ user, logout }}>
  {children}
</UserCtx.Provider>

All lessons in this course

  1. Splitting Contexts to Limit Re-renders
  2. Memoizing Context Values with useMemo
  3. Context Selector Pattern
  4. When Not to Use Context
← Back to React Academy