ladash์์ ์ฌ์ฉํ ์ ์๋ ํจ์์ค ์ ๋ฒ ์ ์ฉํ๊ฒ, ์์ฃผ ์ฌ์ฉํ๊ฒ ๋ ๊ฒ๊ฐ์ Throttle
๊ณผ Debounce
์ ๋ํด ์์๋ณด์!
๋๊ฐ์ ํจ์ ๋ชจ๋ ์ผ์ ์๊ฐ๊ฐ๊ฒฉ ๋ด์ ํจ์๊ฐ ๋ฐ๋ณต์คํ๋๋ ๊ฒ์ ๋ฐฉ์งํ๋ ๋ชฉ์ ์ ๊ฐ์ผ๋
์คํ์กฐ๊ฑด์ ๋ฐ๋ฅธ ์ฐจ์ด๊ฐ ๋ํ๋จ
$ npm i lodash
์ค์น!import throttle from "lodash/throttle";
addEventListener
์ ์ฝ๋ฐฑํจ์ ์๋ฆฌ์ throttle(์ฝ๋ฐฑ, ์๊ฐ)
์ ๋ฃ๋๋ค window.addEventListener('scroll',() => {
console.log('scroll');
})
import throttle from "lodash/throttle";
window.addEventListener('scroll', throttle(() => {
console.log('scroll')
}, 500))
ํจ์์ ํธ์ถ๋น๋๊ฐ ํ์ฐํ ์ค์ด๋ค์๋ค!
$ npm i lodash
์ค์น!import debounce from "lodash/debounce";
addEventListener
์ ์ฝ๋ฐฑํจ์ ์๋ฆฌ์ debounce(์ฝ๋ฐฑ, ์๊ฐ)
์ ๋ฃ๋๋ค const inputEl = document.querySelector('input')
inputEl.addEventListener('input', () => {
console.log(inputEl.value);
})
const inputEl = document.querySelector('input')
inputEl.addEventListener('input', debounce(() => {
console.log(inputEl.value);
}, 300))
๋ค์ด๋ฒ ๊ฒ์์ฐฝ์ ๊ฒฝ์ฐ ํ ์คํธ๋ฅผ ์ ๋ ฅ ํ ๋๋ง๋ค ์๋ก์ด ์ถ์ฒ ๊ฒ์์ด๋ฅผ ๋ถ๋ฌ์จ๋ค.
์ด๋ฐ ๊ฒฝ์ฐ ์๋ก์ด ํ ์คํธ๊ฐ ๋ค์ด์ฌ ๋ ๋ง๋ค ์๋ฒ์์ ํต์ ์ ๋ฐ๋ณตํด์ผ ํ๊ธฐ ๋๋ฌธ์ ์๋ฒ์ ๋ถ๋ด์ ์ค ์ ์๋ค.
์์๊ฐ์ ๊ฒฝ์ฐ์ debounce๋ฅผ ๊ฑธ์ด ์ถ์ฒ ๊ฒ์์ด ํธ์ถ ๋น๋๋ฅผ ๋ฎ์ถฐ์ฃผ๋ฉด ์๋ฒ์ ๋ถ๋ด์ ์ค์ผ ์ ์๋ค