Splitting Contexts to Limit Re-renders
Separate frequently-changing values from stable ones into different contexts.
Splitting Contexts to Limit Re-renders is a free React Academy lesson on CoddyKit — lesson 1 of 4. You can read the complete lesson below for free — then practise it hands-on in the browser with a built-in code editor and a 24/7 AI tutor. It is part of the React Academy learning path, one of 4 lessons in the course, and your progress syncs across the web and the CoddyKit app.
Welcome
The Re-render Problem with Context
Splitting by Update Frequency
const ThemeCtx = createContext('light');
const UserCtx = createContext(null);
// theme changes rarely; user changes on login/logout — same frequency is fine
// but notifCount changes every second — split it out!Separate Data and Dispatch Contexts
const CountCtx = createContext(0);
const SetCountCtx = createContext(() => {});
function Provider({ children }) {
const [count, setCount] = useState(0);
return (
<CountCtx.Provider value={count}>
<SetCountCtx.Provider value={setCount}>
{children}
</SetCountCtx.Provider>
</CountCtx.Provider>
);
}Memoizing the Dispatch Context
const actions = useMemo(() => ({
increment: () => setCount(c => c + 1),
reset: () => setCount(0),
}), []); // stable — empty depsNested Providers
function App() {
return (
<AuthProvider>
<ThemeProvider>
<NotificationsProvider>
<Router />
</NotificationsProvider>
</ThemeProvider>
</AuthProvider>
);
}Profiling Before Splitting
Context Splitting Trade-offs
Combining with React.memo
const ExpensiveChild = React.memo(function({ label }) {
return <div>{label}</div>;
}); // won't re-render on context change if label hasn't changeduseReducer + Context
Quick Check
Recap
Up Next
Frequently asked questions
Is the “Splitting Contexts to Limit Re-renders” lesson free?
Yes — the full text of “Splitting Contexts to Limit Re-renders” is free to read here on the web, and the React Academy course includes 4 lessons in total. To practise it interactively (a built-in code editor and a 24/7 AI tutor) and unlock the rest of the React Academy course, upgrade to CoddyKit PRO.
What will I learn in “Splitting Contexts to Limit Re-renders”?
Separate frequently-changing values from stable ones into different contexts. You practise React Academy with hands-on code you run directly in the browser, and a 24/7 AI tutor answers your questions as you work through the lesson.
Do I need any experience to start React Academy?
No prior experience is required. React Academy on CoddyKit is structured for beginners through advanced learners; this is — lesson 1 of 4, so you can start here or from the beginning and move at your own pace.
How long does the “Splitting Contexts to Limit Re-renders” lesson take?
Most CoddyKit lessons take about 5–10 minutes. Each one is bite-sized and interactive, so you make steady progress and pick up exactly where you left off across the web and the app.
Can I write and run code in this React Academy lesson?
Yes. Every React Academy lesson includes a built-in code editor, so you write and run real code right in your browser and get instant AI feedback — no local setup required.
All lessons in this course
- Splitting Contexts to Limit Re-renders
- Memoizing Context Values with useMemo
- Context Selector Pattern
- When Not to Use Context