๐ป TIL 18 | ๋๋ฐ์ด์ค(Debounce)
์ด๋ฒ ์ฑํฐ๋ ๋๋ฐ์ด์ค์ ๋ํด ๋ค๋ฃจ์์ต๋๋ค.
โ ๏ธ ์ ๋ฆฌํ ๋ด์ฉ์ ์คํ๋ ์๋ชป๋ ์ ๋ณด๊ฐ ์์ ์ ์์ต๋๋ค. ๋๊ธ๋ก ์๋ ค์ฃผ์๋ฉด ๊ฐ์ฌํ๊ฒ ์ต๋๋ค
๐ ์ค๋ ๊ณต๋ถํ ๊ฒ
๋๋ฐ์ด์ค
์ด๋ค ๋ด์ฉ์ ์ ๋ ฅํ๋ค๊ฐ ํน์ ์๊ฐ ๋์ ๋๊ธฐํ๊ณ ์์ผ๋ฉด ๋ง์ง๋ง์ ์ ๋ ฅ๋ ๋ด์ฉ์ ๋ฐํ์ผ๋ก ์๋ฒ ์์ฒญ์ ํ๋ ๋ฐฉ๋ฒ์ด๋ค.
$target.addEventListener("keyup", (e) => {
debounce(e.target.value);
});
์ด๋ ๊ฒ keyup์ด๋ฒคํธ๊ฐ ๋ฐ์ํ ๋ debouce
๋ฅผ ํธ์ถํด์ฃผ๋ฉด
let timer;
export const debounce = (value) => {
if (timer) {
clearTimeout(timer);
}
timer = setTimeout(() => {
console.log("input ์์ฒญ์ด ๋ค์ด์์ต๋๋ค.", value);
}, 2000);
};
- ์ด๋ฒคํธ๊ฐ ๋ฐ์ํ ๋๋ง๋ค debounce๋ฅผ ํธ์ถํ๋๋ฐ ์ด ๋ ๋ง๋ค timer๋ฅผ ์ด๊ธฐํ์ํจ๋ค.
- ๋ง์ง๋ง ์ด๋ฒคํธ์์๋ง ๋์ ํด์ผ ํ๋ฏ๋ก setTimeout์ ํตํด ์ด๋ฒคํธ๋ฅผ ์ง์ฐ์ํจ๋ค.
- ํค๋ณด๋ ์ ๋ ฅ์ด ๋ฐ์ํ๋ฉด 2์ด ๊ธฐ๋ค๋ฆฌ๋ค๊ฐ๊ฐ ๋ค์ ํค๋ณด๋ ์ ๋ ฅ์ด ๋ฐ์ํ๋ฉด ์๊ฐ์ ์ด๊ธฐํํ๊ณ 2์ด๋ฅผ ๊ธฐ๋ค๋ฆฌ๋ ํ์์ผ๋ก ์งํ๋๋ค๊ฐ ๋ง์ง๋ง ์ด๋ฒคํธ๊ฐ ๋ฐ์ํ๋ฉด 2์ด ๋ค์ ์ด๋ฒคํธ๊ฐ ์คํ๋๋ค.
๐ฐ ์ด๋ ค์ ๋ ๋ด์ฉ
๋๋ฐ์ด์ค,, ์ปค์คํ ์ด๋ฒคํธ,, ๊ทธ๋ฆฌ๊ณ ์ ๋ถ^^
๐ฅ ์ค๋์ ๋๋์
๋ ธ์ ํด๋ก๋์ ์์ํ๊ธฐ ์ 16์ผ์ฐจ๊น์ง ๊ฐ์๋ฅผ ๋ค ๋ค์๋ค. ํ์ง๋ง!!๐ก ์ปดํฌ๋ํธ ๋ถ๋ฆฌ, fetch, route, history.. ๋ฑ๋ฑ ๋ด ๊ฒ์ผ๋ก ๋ง๋ค์ง ๋ชปํ์๋ค..ใ ใ ์ค๋ ๊ฐ์ ์ค๊ฐ๋ถํฐ๋ ์ฝ๋๋ฅผ ๊ทธ๋ฅ ๋ฐ๋ผ์น๋ ๊ฒ ๊ฐ์..
๋ ธ์ ํด๋ก๋์ ์์ํ๊ธฐ ์ ์๋ ์์ฑ ํธ์ง๊ธฐ๋ฅผ ์ ์ฒด์ ์ผ๋ก ๋ณต์ตํ๊ณ ์์ํด์ผ๊ฒ ๋ค. ๋ฉด์ ์คํฐ๋๋ ๋ฅ ๋ค์ด๋ธ ์คํฐ๋๋ ๋ ธ์ ํด๋ก๋๊ณผ ๋ณํํ ์ ์์์ง ๋๋ฌด ๊ฑฑ์ ๋๋ค๐ ๋๋ฌด ๋ฏธ๋ฆฌ ๊ฒ๋จน๋๊ฑด๊ฐ์,,?๐ ๊ทธ๋๋ ์ง๊ธ๊น์ง ๊พธ์คํ ์ ํด์์ผ๋ ์ปจ๋์ ์กฐ์ ๋ ๊ณต๋ถ๋ ํ์ดํ ~!๐
๐ฃ ์ค๋์ TMI
์ด ๊ธ์ ๋ณด๋ ๋ชจ๋ ํ๋กฑ์ด๋ถ๋ค๊ป.. ๋งค๋์ ๋๊ณผ ๋ฉด๋ด ๊ธฐํ ๊ผญ ์ก์ผ์ธ์!๐ ๊ฐ์ง ์๊ฐ์ด์์ด์!
Refer
ํ๋ก๊ทธ๋๋จธ์ค ๋ฐ๋ธ์ฝ์ค
๋๋ฐ์ด์ค์ ์ฐ๋กํ๋ง์ ๋ํด ์์๋ณด์!
์ค๋์ ๋ด์ฉ ์ ๋ฆฌ
Author And Source
์ด ๋ฌธ์ ์ ๊ดํ์ฌ(๐ป TIL 18 | ๋๋ฐ์ด์ค(Debounce)), ์ฐ๋ฆฌ๋ ์ด๊ณณ์์ ๋ ๋ง์ ์๋ฃ๋ฅผ ๋ฐ๊ฒฌํ๊ณ ๋งํฌ๋ฅผ ํด๋ฆญํ์ฌ ๋ณด์๋ค https://velog.io/@hsk10271/TIL-18์ ์ ๊ท์: ์์์ ์ ๋ณด๊ฐ ์์์ URL์ ํฌํจ๋์ด ์์ผ๋ฉฐ ์ ์๊ถ์ ์์์ ์์ ์ ๋๋ค.
์ฐ์ํ ๊ฐ๋ฐ์ ์ฝํ ์ธ ๋ฐ๊ฒฌ์ ์ ๋ (Collection and Share based on the CC Protocol.)
์ข์ ์นํ์ด์ง ์ฆ๊ฒจ์ฐพ๊ธฐ
๊ฐ๋ฐ์ ์ฐ์ ์ฌ์ดํธ ์์ง
๊ฐ๋ฐ์๊ฐ ์์์ผ ํ ํ์ ์ฌ์ดํธ 100์ ์ถ์ฒ ์ฐ๋ฆฌ๋ ๋น์ ์ ์ํด 100๊ฐ์ ์์ฃผ ์ฌ์ฉํ๋ ๊ฐ๋ฐ์ ํ์ต ์ฌ์ดํธ๋ฅผ ์ ๋ฆฌํ์ต๋๋ค