Задать вопрос
@strannik_k

Какие преимущества/недостатки есть у HOC (Higher-order Components)?

Мне интересно - какие преимущества/недостатки есть у HOC?
Особенно интересна информация о применении нескольких различных HOC к одному компоненту:
1) важна ли очередность в таком случае?
2) как обратиться из одного HOC к другому (опять же в случае применения нескольких HOC к одному компоненту) и нужно ли в данном случае беспокоиться об очередности?

Сам я их не использую, поэтому сложно судить о них без опыта применения в реальных проектах.

Заранее спасибо за ответ!
  • Вопрос задан
  • 1108 просмотров
Подписаться 1 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • Яндекс Практикум
    React-разработчик
    3 месяца
    Далее
  • Нетология
    Frontend-разработка на React
    10 недель
    Далее
  • Академия Eduson
    React-разработчик
    2 месяца
    Далее
Решения вопроса 1
maxfarseer
@maxfarseer
https://maxpfrontend.ru, обучаю реакту и компании
Добрый вечер.
Обычно HOC делаются так, что "очередность" не важна.
Обратиться из одного HOC к другому ... укажите задачу конкретную, мне кажется тут есть более простой способ.

Преимущества (разберем это видео[EN]):
мы описали "функциональность" и добавили ее с легкостью двум нашим компонентам. Следовательно, как минимум два отличных преимущества получили:
+ нет дублирования кода
+ простота в добавлении "функционала"

Другой хороший пример - "Навигационная ссылка"[RU] (подраздел так и называется - Навигационная ссылка), опять же - мы дали функционал необходимый компоненту. Если этот функционал пригодится где-то еще - мы сможем это устроить.

Почему порядок, скорее всего не важен - потому что обычно props передаются в стиле "бери все свойства" (...this.props), где ... - spread operator.

Подытожим:
используя HOC вы "не изменяете" компонент, который он получает, но добавляете при этом функциональность. Разве уже не круто?)
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
ITK academy Нижний Новгород
от 50 000 до 90 000 ₽
от 250 000 до 300 000 ₽
IT ATLAS Москва
от 200 000 до 250 000 ₽