반응형
Notice
Recent Posts
Recent Comments
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- 주식공부
- 드로우
- jQuery
- 덩크로우
- 리액트
- GIT
- Github
- Python
- stockx.com
- 오라클
- 코로나19
- dunk high
- sacai
- 자바스크립트
- 발매예정
- 덩크 로우
- Dunk Low
- oracle
- 리눅스
- 덩크 하이
- 나이키
- 제이쿼리
- react
- draw
- Nike
- Linux
- 파이썬
- JavaScript
- 주식
- dunklow
Archives
- Today
- Total
Life goes slowly...
[React] React.js 의 debounce 함수 본문
728x90
반응형
이벤트 발생과 그에 따른 이벤트 핸들러 콜백 함수를 다루는 것은 프로그램 코드를 작성하는데 가장 중요한 개념입니다. 클릭이벤트처럼 단순하지 않으며 키보드의 입력이 지속적으로 발생할 경우 여러 번의 이벤트를 통하여 API를 호출하게 되면 서버에 과부하가 발생하게 됩니다.
debounce란?
debounce란 특정 이벤트가 발생할 때에 작동하는 비즈니스 로직이 과도하게 발생하는 것을 방지하기 위하여 사용되는 함수입니다. onchange() 함수를 통하여 이벤트가 발생할 때마다 서버에 API를 호출하기보다는 일정 시간이 지난 후에 서버 API를 호출하게 되는 지연 호출의 역할을 하는 함수를 말합니다. 함수의 설정마다 다르겠지만 호출되는 함수들 중 마지막 또는 제일 처음만 호출하도록 하는 함수입니다.비슷한 함수로는 throttle() 함수가 있습니다.
<input class="textInput" />
document.querySelector('.textInput').addEventListener('input', function(e) {
console.log('이벤트 발생중', e.target.value);
});
//debounce 함수 역활 하는 코드
let timer;
document.querySelector('.textInput').addEventListener('input', function(e) {
if (timer) {
clearTimeout(timer);
}
timer = setTimeout(function() {
console.log('마지막 이벤트 발생중', e.target.value);
}, 200);
});
React에서는 lodash 라이브러리인 debounce 함수를 사용할 수 있습니다.
<input type="text" onChange={debounceFunction} />
import React from "react";
import { debounce } from "lodash";
const debounceFunction = debounce(() => {
console.log("debounce 함수 호출중!");
}, 200);
728x90
반응형
'프로그래밍 > React.js' 카테고리의 다른 글
[React] react.js의 HTML img 태그 관련 에러 (0) | 2022.07.05 |
---|---|
[React] Invalid DOM property `for`. Did you mean `htmlFor`에러 (0) | 2022.05.12 |
[React] Expected `onClick` listener to be a function, instead got `false` 에러 (0) | 2022.05.09 |
[React] React.js 의 popup창에서 부모창의 함수 호출 (0) | 2022.04.19 |
[React] React.js 의 JSX 문법 (0) | 2022.02.22 |
[React] Each child in a list should have a unique "key" 에러 (0) | 2022.02.17 |
[React] <input> cannot appear as a child of <table>. 에러 (0) | 2022.02.15 |
[React] React.js 조건문 - IF 문 (0) | 2022.02.14 |
Comments