Встречается на собеседованиях • сегодня

Когда вреден useCallback

useCallback может быть вреден, если его использовать без необходимости. Он не предотвращает повторный рендер дочерних компонентов сам по себе — для этого нужен React.memo.

Основные проблемы:

  1. Лишние зависимости: Если в useCallback передаются часто меняющиеся зависимости, хук будет пересоздавать функцию на каждом рендере, что снижает производительность.
  2. Преждевременная оптимизация: Добавление useCallback "на всякий случай" усложняет код без реальной пользы.
  3. Замыкания: Может привести к багам с устаревшими значениями в замыканиях, если зависимости указаны неверно.

Пример плохого использования:

jsx
const handleClick = useCallback(() => {
  console.log('Clicked!'); // Нет зависимостей, но и нет смысла — функция простая
}, []);

Лучше использовать useCallback только когда:

  • Функция передаётся в memoized компонент (React.memo)
  • Функция используется в эффектах/хуках с зависимостями
  • Функция тяжелая для создания
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы