Los High Order Components son funciones que reciben un componente como parámetro y devuelven un componente.
function withLayout(Component) {
return function(props) {
return <main>
<section>
<Component {...props} />
</section>
</main>
}
}
En este caso, la función withLayout
recibe un componente como parámetro y devuelve un componente. El componente devuelto renderiza el componente que se le pasa como parámetro dentro de un layout.
Es un patrón que nos permite reutilizar código y así podemos inyectar funcionalidad, estilos o cualquier otra cosa a un componente de forma sencilla.
Con la llegada de los hooks, los HOCs se han vuelto menos populares, pero todavía se usan en algunos casos.