useState를 사용하는 방식은 평소 사용하던 방식이 아닌 다른 방식도 있는데 그게 함수형 업데이트방식
- 기존의 방법
- 함수형 업데이트 방법
currenNum을 받아와서 + 1을 해준다.
기존의 방법과 동일한 기능은 동일하나 차이점이 있다.
기존의 업데이트 방식은 함수를 여러번 작성해도 한번만 동작 (카운트가 1씩 올라감)
반면 함수형 업데이트 방식은 함수를 여러번 쓰면 쓴 만큼 한번에 동작한다. (카운트가 3씩 올라감)
이러한 차이가 있는 이유는 배치성으로 처리되기 때문.
(배치 업데이트) 기존의 업데이트 방식은 변경된 내용들을 한꺼번에 모아서 한번만 업데이트 하기 때문에 1씩 올라감(내용이 같기 때문에 동일하게 인식)
반면 함수형 업데이트 방식은 인자부분(currenNum)에 현재 상태의 state가 들어옴 즉 값이 계속 누적됨 그래서 3씩 올라감
리액트 내에서 렌더링이 많이 일어나는건 결국 성능 이슈로 이어짐 따라서 불필요한 렌더링을 피하기 위해서 한번에 요청사항을 처리함