[React] useState(비동기)

JH Cho·2022년 9월 2일
0

React

목록 보기
6/27
function App() {
  const [count, setCount] = useState(0);

  const onClick = () => {
    setCount(count + 1);
    // setCount((count) => count + 1);
   
    setCount(count + 1);
    // setCount((count) => count + 1);
    
    console.log(count);
  };
  console.log("밖 카운트", count);
  return (
    <div>
      <h1>{count}</h1>
      <button onClick={onClick}>+</button>
    </div>
  );
}
  • setCount(count + 1); 일 때
    안에 콘솔은 다 0찍히고 밖 콘솔은 +1
    이유 : setState는 마지막에 처리되는데
    이때 둘 다 0에서 1더할게~ 라고 인식한 상태

  • setCount((prev) => prev +1);
    안에 콘솔도 마찬가지 0찍히고 밖 콘솔은 +2
    이유 : 첫번째 - 나 0에서 1 더함
    두번째 - 나 1에서 1 더함~
    결과 2

      
 
    setCount((prev) => prev + 1);
   
    setCount(count + 1);
 

결과 : + 1

    setCount(count + 1);
    setCount((prev) => prev + 1);

결과 : + 2

참고
https://codingapple.com/unit/react-setstate-async-problems/

profile
주먹구구식은 버리고 Why & How를 고민하며 프로그래밍 하는 개발자가 되자!

0개의 댓글