A higher-order component (HOC) is a function that takes a component and returns a new component.
Basically, it's a pattern that is derived from React's compositional nature.
const EnhancedComponent = higherOrderComponent(WrappedComponent)
HOC can be used for many use cases:
1) Code reuse, logic and bootstrap abstraction.
2) Render hijacking.
3) State abstraction and manipulation.
4) Props manipulation.