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

Что такое массив зависимостей в useEffect? Что будет, если передать пустой массив или не передавать его вообще?

Компании, где спрашивали
VK Tech

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

sobes.tech AI

В React хук useEffect принимает вторым аргументом массив зависимостей — список значений, при изменении которых эффект будет повторно выполняться.

  • Если передать пустой массив [], эффект выполнится только один раз — после первого рендера компонента (аналогично componentDidMount).
  • Если не передавать массив зависимостей вовсе, эффект будет выполняться после каждого рендера компонента, что может привести к нежелательным повторным вызовам.

Пример:

useEffect(() => {
  console.log('Выполнится один раз');
}, []);

useEffect(() => {
  console.log('Выполняется после каждого рендера');
});

useEffect(() => {
  console.log('Выполнится при изменении count');
}, [count]);

Таким образом, массив зависимостей контролирует, когда именно должен срабатывать эффект, оптимизируя работу компонента.