Web & App/Frontend Study
React #8 _ useState 마무리 정리
jimmmy_jin
2024. 12. 31. 13:03
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 같은 최적화 툴도 있다.