useState의 값을 조정하기 위해서는 const [a , setA] = useState() 구조에서
setA를 터치해서 조정해야 하는데
예를 들어 아래와 같은 구조에서
function handleSetA(n) {
setA(n)
}
setA(n) 밑에 예를 들어 console.log(a)를 찍어보면
예상한 값은 n이 나와야 하지만
그렇지 않다.
이 함수는 그런 식으로 작동하지 않고
그대로 이전 값인 초기값이 나올 것이다.
그래서 이 상황에서 최신화된 값을 가지고 처리하고 싶다면
아래와 같은 방법으로 해야 한다.
function handleSetA(n){
setA(n)
setA((prev) => prev + 1);
}
만약 초기값이 0이고 n이 1이라면
최종 결과로 a 에는 2가 나올 것이다.
결론적으로 위 함수에서 순차적으로 진행될 거 같이 보이나
사실은 그렇지 않고 동시에 실행되는 느낌이다.
그래서 console.log로 찍어보는 건 계속해서 오래된 값을 확인하기 때문에
부적절하고
이 전 값을 받아서 처리하는 방식으로 해야 한다.
결과적으로 리액트의 속도나 성능을 높이기 위해서 노력을 해야 하는데
그걸 도와주는 MillionJS 같은 최적화 툴도 있다.
'Frontend Study' 카테고리의 다른 글
React # 10 Error handle (0) | 2025.01.02 |
---|---|
React # _ HTTP 요청 보내기 (1) | 2025.01.01 |
React #7 _ Key의 중요성 (0) | 2024.12.31 |
React#6 _ 컴포넌트 나누기의 중요성 그리고 DOM (0) | 2024.12.31 |
React를 공부하면서 필수적으로 알아야 할 것? (0) | 2024.12.31 |