Хуки React: useState и useEffect
Хуки — способ «подключить» возможности React к функциональному компоненту. useEffect запускает побочные эффекты: запросы, подписки, синхронизацию с внешним миром.
Зависимости
Массив зависимостей говорит React, когда перезапускать эффект. Пустой массив — один раз после монтирования. Забыли зависимость — получите устаревшее замыкание.
Cleanup
Возвращайте функцию очистки: отмена таймера, отписка от события, abort контроллера fetch.
Дальше
Практика UI: списки и формы.
JavaScript
import { useEffect, useState } from 'react';
function Clock() {
const [now, setNow] = useState(() => new Date());
useEffect(() => {
const id = setInterval(() => setNow(new Date()), 1000);
return () => clearInterval(id);
}, []);
return <p>{now.toLocaleTimeString()}</p>;
} Практическое задание
Задание: сделайте тикающие часы или таймер.
- Есть useEffect с cleanup
- Зависимости указаны явно
- После размонтирования интервал не тикает (проверить в Strict Mode)
- Не храните Date в DOM вручную без state