Flash cards
Review the key moves
What is the main idea behind React Higher Order Components?
Lesson checks
Practice each idea before moving on
Short Mimo-style checks built from this lesson's code, terms, and sequence.
Which statement best captures the main point of this lesson?
Complete the missing token from the example code.
// This is our HOC - it adds a border to any component ___ withBorder(WrappedComponent) {Put the learning moves in the order that makes the concept easiest to apply.
What is a Higher Order Component?
A Higher Order Component (HOC) is like a wrapper that adds extra features to your React components. Think of it like putting a case on your phone - the case adds new features (like water protection) without changing the phone itself.
Note
HOCs are functions that take a component and return an enhanced version of that component.
Example: Adding a Border
To demonstrate how HOCs work, let's create a simple example - adding a border to any component:
Example
Create a function that adds a border around whatever component you pass to it:
// This is our HOC - it adds a border to any component function withBorder(WrappedComponent) {
return function NewComponent(props) {
return ( <div style={{ border: '2px solid blue', padding: '10px' }}> <WrappedComponent {...props} /> </div> );
};
}
// Simple component without border function Greeting({ name }) {
return <h1>Hello, {name}!</h1>;
}
// Create a new component with border
const GreetingWithBorder = withBorder(Greeting);
function App() {
return ( <div> <Greeting name="John" /> <GreetingWithBorder name="Jane" /> </div> );
}In this example
- withBorder is our HOC - it's a function that takes a component
- It returns a new component that wraps the original in a div with a border
- The original component ( Greeting ) remains unchanged
- We can still use both the original and enhanced versions
Note
Often, HOC's can be replaced with React Hooks, but HOC's are still useful for certain cross-cutting concerns like authentication or data fetching patterns.