Recent Posts
Recent Comments
Archives
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- array정적메서드
- useRouter
- 내일배움캠프
- Next
- vercel
- 초기셋팅
- 모던 자바스크립트
- React
- 소셜 로그인
- 티스토리챌린지
- nextjs
- 스파르타코딩클럽
- domain
- git
- 프로그래머스
- 오블완
- js
- 셋팅
- 코딩테스트
- 자주 까먹는
- 모던자바스크립트
- 리터럴
- CORS
- 코테
- 프로젝트 셋팅
- vscode
- 코드카타
- 구글 로그인
- deep dive
- error
- Today
- Total
파피루스
[React] 함수형 업데이트 (feat. 순수함수 vs 비순수함수) 본문
순수 함수 : 외부환경에 의존하거나 변경하지 않는 함수
비순수 함수 : 외부 환경에 의존 또는 외부 환경을 변경시키는 함수
같은 내용을 행하더라도, 이렇게 보면 다르다.
let a = 1;
// 순수 함수
const sum (num) {
return num + 5;
}
console.log(sum(a)); // 6
// 비순수 함수
const sumCopy(){
return a + 5; // 변수 a에 의존적이다.
}
console.log(sumCopy()); // 6
같은 행위가 일어나도 외부 환경에 대한 의존성을 낮추기 위해 순수함수와 같이 외부 환경에 의존적이지 않게 짜기 위해 함수형 업데이트를 사용한다. setState는 비동기로 동작하기에 setState 라인에 도착했을 때의 인자 값과 실제 함수가 실행되는 시점의 값이 다를 수 있다. 따라서 함수형 업데이트를 통해 실제 setState가 일어날 때 인자를 갖고와 sync를 맞춰야하느 ㄴ것이다.
// 비순수 함수형
const handleToggleModal = (e) => {
setIsDone(!isDone);
}
// 순수 함수형
const handleToggleModal = (e) => {
setIsDone((isDone) => !isDone);
}
'React' 카테고리의 다른 글
react/nextJs font 적용하기 (1) | 2024.08.31 |
---|---|
[Error] Functions cannot be passed directly to Client Components (0) | 2024.08.04 |
[React] Hook : useCallback, useMemo (1) | 2024.05.20 |
[React] Hook : useState, useEffect, useRef, useContext (0) | 2024.05.20 |
React 시작하기 (주요 개념과 이전 개발 방식과의 차이) (0) | 2024.05.13 |