Компоненты высшего порядка на самом деле являются шаблоном проектирования, основанным на композиционной природе React, который позволяет нам создавать компоненты на основе конкретных данных, которые мы хотим им передать.


Подумайте об этом так:


  • Компоненты возвращают React Elements (JSX)

  • Компоненты высшего порядка возвращают компоненты


Не запутайтесь  — HOC сам по себе не является компонентом.


Помните: компоненты — это функции, которые возвращают элемент React (элемент JSX), компоненты более высокого порядка — это функции, которые возвращают эти компоненты.



На более высоком уровне абстракции HOC будет выглядеть примерно так:


```javascript


const withHOC = (Component, someData, otherArgs) => {


возврат (реквизит) => {


возврат (


<Компонент


customProp={someData.firstProp}


dataSomething={otherArgs.someOtherDataProp}


{...реквизит}


Можно также добавить вложенные элементы



with … символизирует де-факто (наиболее часто используемое) соглашение об именах при работе с HOC.


И непрактичный пример того, как это можно использовать:


```javascript


импортировать с помощью Hoc из «предыдущий смысл»;


const Компонент = (реквизит) => {


возврат (


<дел>


Здравствуйте!