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
- 프로젝트 셋팅
- nextjs
- vscode
- React
- 모던 자바스크립트
- 초기셋팅
- 오블완
- domain
- js
- CORS
- git
- 코드카타
- 리터럴
- useRouter
- 소셜 로그인
- array정적메서드
- 프로그래머스
- Next
- deep dive
- vercel
- 코딩테스트
- 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 |