[260103] TIL
Today I Learned (2026-01-03)
๊ฒ์ํ ๋ Debounce ์ต์ ํ ํ๊ธฐ
ํด๋ก์ ๋ก ๊ตฌํ
const handleCloserInputChange = (() => {
let time: number | null = null;
return (e: ChangeEvent<HTMLInputElement>) => {
if (time) clearTimeout(time);
time = window.setTimeout(() => onSearch(e.target.value), 300);
};
})();
- ์ปดํฌ๋ํธ ๋ฆฌ๋ ๋ ์, ์๋ก์ด ํด๋ก์ ๊ฐ ๋ง๋ค์ด์ง ์ ์์
- ๋ฆฌ์กํธ ์๋ช ์ฃผ๊ธฐ์ ๋ถ๋ฆฌ๋จ, ๋ฆฌ๋ ๋/strict mode/ ๋์ props์ ์ทจ์ฝ
useRef๋ก ๊ตฌํ
const debounceTime = useRef<number | null>(null);
const handleInputChange = (e: ChangeEvent<HTMLInputElement>) => {
if (debounceTime.current) clearTimeout(debounceTime.current);
debounceTime.current = window.setTimeout(() => onSearch(e.target.value), 300);
};
- react ์๋ช ์ฃผ๊ธฐ์ ์ํจ
- cleanup ๊ฐ๋ฅ
- ์ต์ ๊ฐ ์ ์ง ๊ฐ๋ฅ
- concurrent/strict mode ๋์
Leave a comment