useState 훅
41
작성한 질문수 8
const [count,setCount] = useState(0);
선언되어 있을때
()=>setCount(count+1);
(count)=>setCount(count +1);
강의에서는 2번 처럼 사용 하던데 1번 처럼 사용해도 상관없나요? 차이가 있나요?
답변 2
0
안녕하세요, 인프런 AI 인턴입니다. 신박한님.
useState를 사용할 때, 상태 업데이트에 있어서 두 가지 방식에 대해 궁금하신 것 같습니다. 두 방식 모두 상태를 업데이트하는 방법이지만, 약간의 차이가 있습니다.
차이점 정리:
1번 방식:
()=>setCount(count+1);- 이 방식은 기존의
count값을 그대로 사용하여 그에 1을 더합니다.
- 하지만, 이 방식은 비동기적인 특성을 가진 리액트 상태 관리에서 문제를 일으킬 수 있습니다. 만약 업데이트가 연속으로 이루어질 경우(예: 빠르게 버튼을 두 번 클릭), 예상치 않은 결과를 초래할 수 있습니다. 이는
count값이 업데이트로 인해 즉각적이지 않을 수 있기 때문입니다.
- 이 방식은 기존의
2번 방식:
(prev) => setCount(prev + 1);- 이 방식은 함수형 업데이트를 사용하는 방법입니다.
prev는setCount가 호출될 당시의 최신count값을 캡처합니다. 비동기적인 상태 업데이트에도 안정적이며, 동시에 여러 업데이트가 이루어질 때에도 정확한 결과를 보장합니다.
- 이 방식은 함수형 업데이트를 사용하는 방법입니다.
결론
리액트에서는 비동기적인 업데이트의 특성을 고려하여 2번 방식인 함수형 업데이트를 사용하는 것이 더 안전하고 권장됩니다. 따라서 강의에서도 이러한 방식으로 설명했을 가능성이 큽니다.
이와 관련해서 더 깊이 이해할 수 있는 유사한 질문들을 추천해 드립니다:
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
cloudinary 관련
0
41
3
useOptimistic 실전-1 useState
0
62
2
discord 초대장 갱신이 필요한거같습니다.
0
63
1
할일 관리 앱(메모이제이션)
0
79
2
Web 플랫폼 등록
0
107
2
함수 정의 기준
0
76
2
fetch는 사용되는가
0
75
2
전역상태 관리 선택 기준
0
86
2
tailwind css는 언제 사용되는가 또 다른 css와의 차이
0
154
2
카카오 web플랫폼 등록
0
146
2
컴포넌트 그리고 폴더 구조에 대해
0
59
2
152강 보는중입니다. 초시계부분이구요. 넘버가 timeout을 받을수없다는 에러가 나오고 있어요
0
42
1
폼테그 다른 태그를 하나의 상태 객체로 묶기
0
43
2
class를 className으로 전부 수정하실 때
0
42
2
JWT에 대한 개념도 학습할 수 있나요?
0
64
2
수업자료 다운로드
0
52
2
리액트 객체의 타입을 알기위하여 마우스를 올렸을 때 나오는 형식이 강의와 다른 부분 문의 드립니다.
0
65
2
useState 자동생성 하실때 누른 키보드가 궁금합니다.
0
51
1
타입스크립트 타입이 불일치하는데 에러가 안납니다.
0
75
3
default format >> prettier 이 실행이 안됩니다.
0
65
2
윈도우 사용자입니다. homebrew 윈도우 설치법은 없나요?
0
344
3
리렌더링 관련 문의
0
56
2
공부 방향에 대해서
0
62
2
form action 과 onSubmit
0
59
2





