Вопрос проверяет знание работы useEffect и его аналогов в классовых компонентах.
useEffect объединяет логику componentDidMount, componentDidUpdate и componentWillUnmount. Пустой массив зависимостей ([]) означает, что эффект запустится только при монтировании и очистится при размонтировании.
Аналогии с классами:
componentDidMount: Эффект с [].
componentDidUpdate: Эффект без [] или с зависимостями.
componentWillUnmount: Функция очистки в useEffect.
Примеры:
Монтирование и размонтирование:
useEffect(() => {
console.log('Компонент смонтирован');
return () => console.log('Компонент размонтирован');
}, []);Зависимости:
useEffect(() => {
console.log('Значение изменилось:', value);
}, [value]); // Срабатывает при изменении `value`Пустой массив зависимостей:
Эффект запускается один раз после первого рендера.
Очистка (если есть) выполняется при размонтировании.
Вывод:useEffect унифицирует работу с побочными эффектами, заменяя несколько методов жизненного цикла.