Компонент высшего порядка (Higher-Order Component или HOC) — это один из важных концептов в библиотеке React. Несмотря на свое название, HOC не является компонентом в традиционном понимании. Это функция, которая принимает компонент и возвращает новый компонент.
В контексте русского языка, часто можно встретить название "компонент высшего порядка". Это происходит из-за сходства выражений High-Order Function и High-Order Component. Однако следует понимать, что компоненты высшего порядка никак не связаны с компонентами, находящимися "выше" по иерархии. Основная идея заключается в том, что они применяются для реализации повторно используемой логики.
function withSubscription(WrappedComponent, selectData) {
// ...искомый компонент...
return class extends React.Component {
// ...
}
}
const CommentListWithSubscription = withSubscription(
CommentList,
(DataSource) => DataSource.getComments()
);
В этом примере withSubscription
является компонентом высшего порядка. Он оборачивает CommentList
в новый компонент, который подписывается на обновления данных. Таким образом, логикой подписки можно повторно воспользоваться в других компонентах.
Использование HOC позволяет сделать компоненты более модульными и переиспользуемыми. Они позволяют абстрагировать общую логику и улучшить структуру кода в приложении.