bugl
bugl
HomeLearnPatternsPathsSearch
HomeLearnPatternsPathsSearch

Loading lesson path

Learn/React/React Core
React•React Core

React Higher Order Components

Flash cards

Review the key moves

1/4
Core idea

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.

1Quick choice

Which statement best captures the main point of this lesson?

2Fill blank

Complete the missing token from the example code.

// This is our HOC - it adds a border to any component ___ withBorder(WrappedComponent) {
3Order

Put the learning moves in the order that makes the concept easiest to apply.

Create a function that adds a border around whatever component you pass to it:
To demonstrate how HOCs work, let's create a simple example - adding a border to any component:
A Higher Order Component (HOC) is like a wrapper that adds extra features to your React components.

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.

Previous

React forwardRef

Next

React Sass Styling