useEffect(() => { ... }, [deps]) — побочные эффекты: fetch, подписки, таймеры. Пустой [] — только при монтировании. Без deps — после каждого рендера (осторожно).
Cleanup: return () => clearInterval(id) в useEffect — при размонтировании или перед следующим эффектом. Зависимости должны включать все используемые реактивные значения.
Отдельные эффекты для разных задач — проще читать и отлаживать.
useEffect(() => {
document.title = 'Счёт: ' + count
}, [count])useEffect(() => {
const id = setInterval(tick, 1000)
return () => clearInterval(id)
}, [])Книга, игра и упражнения доступны без регистрации. Видеоуроки — после оплаты курса.