Higher-Order Components (HOCs) Explained
Wrap components to inject props, guard routes, or add logging via HOC factories.
Higher-Order Components (HOCs) Explained is a free React Academy lesson on CoddyKit — lesson 2 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
What Is a HOC?
// HOC signature
function withEnhancement(WrappedComponent) {
return function Enhanced(props) {
// add behaviour here
return <WrappedComponent {...props} extraProp="value" />;
};
}Auth Guard HOC
function withAuth(Component) {
return function AuthGuard(props) {
const isLoggedIn = useAuth();
if (!isLoggedIn) return <Navigate to="/login" />;
return <Component {...props} />;
};
}
const ProtectedPage = withAuth(DashboardPage);Logging HOC
function withLogger(Component) {
return function Logged(props) {
console.log('[render]', Component.displayName, props);
return <Component {...props} />;
};
}Passing Props Through
return function HOC(props) {
return <WrappedComponent {...props} injectedProp={value} />;
};Setting displayName
function withAuth(Component) {
function AuthGuard(props) { /* ... */ }
AuthGuard.displayName = 'withAuth(' + (Component.displayName || Component.name) + ')';
return AuthGuard;
}Forwarding Refs
function withStyle(Component) {
return React.forwardRef(function (props, ref) {
return <Component ref={ref} {...props} className="styled" />;
});
}HOC vs Render Props vs Hooks
Wrapper Hell
HOCs in the Wild
Quick Check
Recap
Up Next
Frequently asked questions
Is the “Higher-Order Components (HOCs) Explained” lesson free?
Yes — the full text of “Higher-Order Components (HOCs) Explained” 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 “Higher-Order Components (HOCs) Explained”?
Wrap components to inject props, guard routes, or add logging via HOC factories. 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 2 of 4, so you can start here or from the beginning and move at your own pace.
How long does the “Higher-Order Components (HOCs) Explained” 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
- Render Props Pattern
- Higher-Order Components (HOCs) Explained
- HOC vs Render Props vs Custom Hooks
- Refactoring a HOC to a Custom Hook