Sobes.tech
Назад к вопросам
Senior
4

Расскажи про хук useEffect — что он делает и как работает?

Компании, где спрашивали
АйтиФаундейшн

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

sobes.tech AI

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

Что делает:

  • Выполняет функцию после рендера компонента.
  • Позволяет синхронизировать компонент с внешними системами: подписки, таймеры, запросы к API, изменение DOM.

Как работает:

  • При первом рендере вызывается функция эффекта.
  • При изменении зависимостей (указываются во втором аргументе — массиве зависимостей) эффект повторно вызывается.
  • Если эффект возвращает функцию, она вызывается перед следующим вызовом эффекта или при размонтировании компонента — для очистки (cleanup).

Пример:

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

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

  useEffect(() => {
    const id = setInterval(() => {
      setCount(c => c + 1);
    }, 1000);

    return () => clearInterval(id); // очистка при размонтировании
  }, []); // пустой массив — эффект запускается один раз

  return <div>Счётчик: {count}</div>;
}

Таким образом, useEffect управляет жизненным циклом побочных эффектов в функциональных компонентах React.