Higher-order components are wrapper components that provide a certain level of abstraction for a specific component behaviour. They make it easy to reuse the component logic.
In practical terms, it is simply a function that takes other components as parameters and returns a new wrapped component that can render the original component with the intended new behaviour. Here’s how a simple HOC function call looks like:
const wrappedComponent = hoc(component);