Ответ вслух Junior Паттерны компонентов обновлено

Кастомные хуки

Вопрос

Что такое кастомный хук и что он на самом деле переиспользует?

Попробуйте сами

Ответьте вслух за 2 минуты, как на собесе. Потом сверьтесь с тезисами: что прозвучало, а что нет.

Показать ответ и разбор

Коротко

Кастомный хук - обычная функция, имя которой начинается с use и которая внутри вызывает другие хуки. Префикс нужен линтеру, чтобы применять правила хуков.

Что должно прозвучать в ответе

  • функция с префиксом use, вызывающая другие хуки

  • переиспользует логику, но не состояние

  • каждый вызов создаёт независимый экземпляр состояния

  • заменил render-props и HOC из классовой эпохи

  • возвращать лучше объект, когда значений больше двух

  • правила хуков действуют внутри так же

Что могут спросить следом

  • Как сделать хук, который шарит состояние между компонентами
  • Чем хук лучше HOC на практике
  • Как тестировать кастомный хук

Разбор

Кастомный хук - обычная функция, имя которой начинается с use и которая внутри вызывает другие хуки. Префикс нужен линтеру, чтобы применять правила хуков.

Ключевое, что путают на собеседовании: хук переиспользует логику, а не состояние. Два компонента, вызвавшие useToggle(), получат два независимых состояния. Общее состояние - это контекст или внешний стор.

Хуки заменили HOC и render-props: нет обёрток в дереве, нет коллизий имён пропсов, типы выводятся. Возвращать кортеж удобно для двух значений ([value, setValue]), объект - когда их больше.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.