SWEBDEV Telegram 3906
Отложенное выполнение эффектов

Для эффектов, срабатывающих с задержкой после изменений, создают хук 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



tgoop.com/sWebDev/3906
Create:
Last Update:

Отложенное выполнение эффектов

Для эффектов, срабатывающих с задержкой после изменений, создают хук 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

BY Frontender Libs - обзор библиотек JS / CSS




Share with your friend now:
tgoop.com/sWebDev/3906

View MORE
Open in Telegram


Telegram News

Date: |

fire bomb molotov November 18 Dylan Hollingsworth yau ma tei Ng, who had pleaded not guilty to all charges, had been detained for more than 20 months. His channel was said to have contained around 120 messages and photos that incited others to vandalise pro-government shops and commit criminal damage targeting police stations. 6How to manage your Telegram channel? Write your hashtags in the language of your target audience. Although some crypto traders have moved toward screaming as a coping mechanism, several mental health experts call this therapy a pseudoscience. The crypto community finds its way to engage in one or the other way and share its feelings with other fellow members.
from us


Telegram Frontender Libs - обзор библиотек JS / CSS
FROM American