Продолжаем разбирать реальные инженерные ловушки, которые легко не заметить в обычной разработке.
Сегодня под микроскопом — клиентские таймеры во фронтенде
useEffect(() => { const interval = setInterval(() => { fetch("/api/notifications"); }, 5000); return () => clearInterval(interval);}, []);Каждые 5 секунд запрашиваем уведомления…
здесь есть несколько нюансов.
Если написать так:
useEffect(() => { setInterval(() => { fetch("/api/notifications"); }, 5000);}, []);и компонент смонтируется несколько раз, старые таймеры продолжат работать.
В результате:
1 монтирование → 1 запрос / 5 сек3 монтирования → 3 запроса / 5 секПоэтому setInterval нужно очищать при размонтировании.



















