Кастомные хуки
Вопрос
Что такое кастомный хук и что он на самом деле переиспользует?
Попробуйте сами
Ответьте вслух за 2 минуты, как на собесе. Потом сверьтесь с тезисами: что прозвучало, а что нет.
Показать ответ и разбор
Коротко
Что должно прозвучать в ответе
функция с префиксом use, вызывающая другие хуки
переиспользует логику, но не состояние
каждый вызов создаёт независимый экземпляр состояния
заменил render-props и HOC из классовой эпохи
возвращать лучше объект, когда значений больше двух
правила хуков действуют внутри так же
Что могут спросить следом
- Как сделать хук, который шарит состояние между компонентами
- Чем хук лучше HOC на практике
- Как тестировать кастомный хук
Разбор
Кастомный хук - обычная функция, имя которой начинается с use и которая внутри
вызывает другие хуки. Префикс нужен линтеру, чтобы применять правила хуков.
Ключевое, что путают на собеседовании: хук переиспользует логику, а не состояние.
Два компонента, вызвавшие useToggle(), получат два независимых состояния. Общее состояние -
это контекст или внешний стор.
Хуки заменили HOC и render-props: нет обёрток в дереве, нет коллизий имён пропсов, типы
выводятся. Возвращать кортеж удобно для двух значений ([value, setValue]), объект - когда
их больше.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.