En React, este tipo de componente se conoce como un «componente de orden superior» o «HOC» (Higher Order Component).
Un HOC es una función que toma un componente y devuelve otro componente que generalmente proporciona funcionalidad adicional al componente original.
Supongamos que queremos crear un HOC llamado WrapperComponent
que envuelva a otro componente llamado WrappedComponent
y le proporcione alguna funcionalidad adicional.
Por ejemplo, podríamos querer proporcionar un borde rojo alrededor de WrappedComponent
. Aquí tienes cómo hacerlo:
import React from 'react'; // Definimos nuestro HOC const WrapperComponent = (WrappedComponent) => { // Retorna un nuevo componente return class extends React.Component { render() { // Aquí podemos agregar cualquier lógica adicional antes o después de renderizar el componente envuelto return ( <div style={{ border: '2px solid red', padding: '10px' }}> {/* Renderizamos el componente envuelto y pasamos todas las props */} <WrappedComponent {...this.props} /> </div> ); } }; }; // Creamos un componente que queremos envolver const MyComponent = (props) => { return ( <div> <h2>Componente Envuelto</h2> <p>Propiedad: {props.propiedad}</p> </div> ); }; // Envolver MyComponent con nuestro HOC const WrappedMyComponent = WrapperComponent(MyComponent); // Usamos WrappedMyComponent en nuestra aplicación const App = () => { return ( <div> <h1>Aplicación con Componente Envuelto</h1> <WrappedMyComponent propiedad="¡Hola!" /> </div> ); }; export default App;
En este ejemplo, WrapperComponent
es una función que toma WrappedComponent
como argumento y devuelve un nuevo componente que envuelve WrappedComponent
con un borde rojo. Luego, usamos WrapperComponent
para envolver nuestro componente MyComponent
y creamos WrappedMyComponent
.
Finalmente, usamos WrappedMyComponent
en nuestra aplicación.
Ingeniero en Informática, me encanta crear cosas o arreglarlas y darles una nueva vida. Escritor y poeta. Más de 20 APPs publicadas y un libro en Amazon.