디바운스란 맨 마지막에 호출되는 이벤트만 실행시키는것을 말한다.
그렇다면 이를 어떻게 구현할까?
$target.addEventListener("keyup", (e) => {
debounce(e.target.value);
});
메인에서는 이렇게 별도로 디바운스 함수로 호출해주자! 이렇게 하면 코드가 더 깔끔해진다.
debounce.js
let timer;
export const debounce = (value) => {
if (timer) {
clearTimeout(timer);
}
timer = setTimeout(() => {
console.log("input 요청이 들어왔습니다.", value);
}, 2000);
};
이벤트가 계속 발생한다면 몇초에 한번만 실행되도록 횟수에 제한을 주는것이다.
let timer;
export const throttle = (value) => {
if (!timer) {
timer = setTimeout(() => {
timer = null;
console.log("input 요청이 들어왔습니다.", value);
}, 2000);
}
};