Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

AI info

Карта сайта

Документы

Медиа

Назад
Вопрос про JavaScript: custom hook, react, reusability, separation of concerns, composition

Когда стоит выносить логику в отдельный кастомный hook?

Вопрос проверяет понимание принципов декомпозиции и переиспользования логики в React-компонентах через кастомные хуки.

Короткий ответ

Кастомный хук стоит выносить, когда одна и та же логика повторяется в нескольких компонентах. Это улучшает читаемость, тестируемость и переиспользование кода. Также хук оправдан, если логика сложная и её хочется изолировать от UI. Например, работа с API, подписки, localStorage или формы.

Длинный ответ

Когда выносить логику в кастомный хук?

Кастомные хуки — это способ извлечения повторяющейся логики из компонентов. Они позволяют отделить состояние и побочные эффекты от представления, следуя принципу разделения ответственности. Основной сигнал к созданию хука — дублирование кода: если вы видите одинаковую логику в двух и более компонентах, это кандидат на вынесение.

Примеры использования

  • Работа с API (загрузка данных, обработка ошибок, загрузка)
  • Управление формами (валидация, отправка)
  • Подписки на события (resize, scroll, WebSocket)
  • Работа с localStorage или cookies
  • Таймеры и интервалы

Пример кода

import { useState, useEffect } from 'react';

function useWindowWidth() {
  const [width, setWidth] = useState(window.innerWidth);

  useEffect(() => {
    const handleResize = () => setWidth(window.innerWidth);
    window.addEventListener('resize', handleResize);
    return () => window.removeEventListener('resize', handleResize);
  }, []);

  return width;
}

// Использование в компоненте
function MyComponent() {
  const width = useWindowWidth();
  return <div>Window width: {width}</div>;
}

Вывод

Кастомные хуки стоит применять, когда нужно переиспользовать логику с состоянием или эффектами между компонентами. Они делают код чище, упрощают тестирование и поддержку, особенно в крупных проектах.

Frontend developer

tech
tech
tech
tech
tech
tech
tech
tech
tech

Ментор по Frontend

Полное сопровождение до оффера — без дорогих курсов, с оплатой после трудоустройства

Записаться на консультацию

Уровень

  • Рейтинг:

    4

  • Сложность:

    4

Навыки

  • JavaScript

    JavaScript

  • React

    React

Ключевые слова

#custom hook

#react

#reusability

#separation of concerns

#composition

Подпишись на React Developer в телеграм

Frontend developer

tech
tech
tech
tech
tech
tech
tech
tech
tech

Ментор по Frontend

Полное сопровождение до оффера — без дорогих курсов, с оплатой после трудоустройства

Записаться на консультацию