What is HOC?
To share common funcationality b/w components
Why HOC?
Concretely, a higher-order component is a function that takes a component and returns a new component.
const EnhancedComponent = higherOrderComponent(WrappedComponent);
const newComponent = higherOrderComponent(originalComponent);