state는 컴포넌트 렌더링에 영향을 주는 데이터를 갖고 있는 객체인데, 이것을 업데이트하기 위해서는 setState, useState가 필요하다. 컴포넌트는 현재의 this.state와 setState를 비교해서 업데이트가 필요한 경우에만 render 함수를 호출하는데, state를 직접 수정하게 되면 리액트가 render 함수를 호출하지 않아 상태 변경이 일어나도 렌더링이 일어나지 않을 수 있다.
📌 state
state는 일반 변수와 다르게 값이 변하면 렌더링이 일어난다. 즉, 값이 변하게 되면 연관있는 컴포넌트들이 다시 렌더링이 되어 화면이 바뀌게 된다. state는 props와 같이 컴포넌트 렌더링에 영향을 주는 데이터를 갖고 있는 객체이고, 컴포넌트 안에서 관리된다.
setState(updater, [callback])
콜백 함수가 실행된 후 리렌더링 된다.
📌 state 설정 비동기 이유
state는 값이 변경되면 리렌더링이 발생한다.
그런데 변경되는 state가 많을 경우 리렌더링이 계속 일어날 테고 속도도 저하될 것이다.
따라서 변경된 값들을 모아 한번에 업데이트를 진행하여 렌더링을 줄이고자 배치(Batch) 기능을 사용해 비동기로 작동한다고 볼 수 있다.
'🍞 Front-End > React' 카테고리의 다른 글
[React] Error 다루기 (0) | 2022.10.21 |
---|---|
[React] Ref로 DOM 다루기 & Form 다루기 (0) | 2022.10.21 |
[React] CSR과 SSR 차이 (0) | 2022.10.05 |
[React] Virtual DOM과 리랜더링, 재조정 (0) | 2022.10.04 |
[React] 컴포넌트 간 통신 Context API (0) | 2022.09.13 |