Ответ
HOC принимает компонент и возвращает новый компонент с дополнительной логикой. Это функция, которая оборачивает другой компонент, добавляя ему новые props или поведение.
Пример:
const withLogger = (WrappedComponent) => {
return (props) => {
console.log('Rendering:', WrappedComponent.name);
return <WrappedComponent {...props} />;
};
};
const EnhancedComponent = withLogger(MyComponent);Ключевые особенности:
- Принимает компонент как аргумент
- Возвращает новый компонент
- Не модифицирует исходный компонент
- Может добавлять/изменять props
- Часто используется для cross-cutting concerns (логирование, авторизация)