Компоненты высшего порядка реализует принцип DRY
Компонент высшего порядка (Higher-Order Component, HOC) - это функция, которая принимает компонент в качестве аргумента и возвращает новый компонент с расширенным функционалом. HOC сам по себе не является компонентом, но он позволяет создавать компоненты с дополнительными функциями и свойствами.
HOC позволяют повторно использовать общую логику и функциональность между различными компонентами. Они могут использоваться для абстрагирования состояния, логики жизненного цикла и других аспектов компонента.
Пример HOC может выглядеть так:
function withData(WrappedComponent) {
return class extends React.Component {
constructor(props) {
super(props)
this.state = { data: [] }
}
componentDidMount() {
fetchData().then((data) => {
this.setState({ data })
})
}
render() {
return <WrappedComponent data={this.state.data} {...this.props} />
}
}
}
В этом примере, функция withData
принимает компонент в качестве аргумента и возвращает новый компонент с добавленным свойством data
, которое получается через fetchData()
и передается в компонент через пропсы.
HOC могут быть использованы для различных задач, например, для логирования, аутентификации, кэширования данных, и т.д. Они позволяют создавать компоненты с дополнительным функционалом без необходимости дублирования кода.