TGViewer
Frontender Libs - обзор библиотек JS / CSS Frontender Libs - обзор библиотек JS / CSS @swebdev · 7.45K subscribers
Post #3906 984
Отложенное выполнение эффектов

Для эффектов, срабатывающих с задержкой после изменений, создают хук useDebouncedEffect. Он инкапсулирует логику setTimeout внутри useEffect. При обновлении зависимостей хук отменяет предыдущий таймер и устанавливает новый, вызывая колбэк по истечении задержки. Важную роль играет функция очистки useEffect, отвечающая за сброс таймера.

import { useEffect, useState } from 'react';

const useDebouncedEffect = (effect, deps, delay) => {
useEffect(() => {
const handler = setTimeout(() => effect(), delay);
return () => clearTimeout(handler);
}, [...(deps || []), delay]);
};

function SearchComponent() {
const [searchTerm, setSearchTerm] = useState('');

useDebouncedEffect(() => {
// Логика отправки запроса на сервер
console.log(`Отправка запроса: ${searchTerm}`);
}, [searchTerm], 500);

return (
<input
type="text"
value={searchTerm}
onChange={(e) => setSearchTerm(e.target.value)}
placeholder="Поиск..."
/>
);
}


👉 @sWebDev
  • ❤ 2
  • 👍 1
More from @swebdev
  1. Sep 26, 2026🤖 AI для фронтенд-разработчика: собираем инструменты на Podlodka Frontend Crew AI-инструм…
  2. Mar 23, 2026👉 @sWebDev | #книги
  3. Mar 23, 2026JavaScript для профессиональных веб-разработчиков Автор доступно объясняет сложные концепц…
  4. Jan 27, 2026Tabulator Библиотека, которая превращает HTML-таблицы или данные из JavaScript в интеракти…
  5. Jan 9, 2026Post #4134
  6. Jan 9, 2026Отложенный вызов Вопрос: Что произойдёт, если передать null в качестве задержки в useTimeo…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →