Sobes.tech
Назад к вопросам
Middle+
6

Что такое useCallback, что он делает и когда его стоит использовать?

Компании, где спрашивали
СБЕРСБЕР

Ответ от нейросети

sobes.tech AI

useCallback — это хук в React, который возвращает мемоизированную версию функции, созданной внутри компонента.

Что он делает:

  • Кэширует функцию между рендерами, если зависимости не изменились.
  • Помогает избежать создания новой функции при каждом рендере.

Когда стоит использовать:

  • Когда функцию передают в дочерние компоненты, которые оптимизированы с помощью React.memo или shouldComponentUpdate, чтобы избежать лишних перерисовок.
  • Когда функция используется в зависимостях других хуков, например, useEffect, чтобы не вызывать эффект без необходимости.

Пример:

import React, { useState, useCallback } from 'react';

function Counter() {
  const [count, setCount] = useState(0);

  const increment = useCallback(() => {
    setCount(c => c + 1);
  }, []); // функция не меняется между рендерами

  return <button onClick={increment}>Count: {count}</button>;
}

Без useCallback функция increment создавалась бы заново при каждом рендере, что могло бы привести к ненужным обновлениям дочерних компонентов.