TIL
2025-01-11 (Flutter)
Robinkim93
2025. 1. 11. 21:17
- Stateful widget은 데이터의 변화에 따른 화면 변화를 일으킬 수 있다.
- setState 함수를 활용해 state의 변화를 widget에 전달하여 build 메서드를 재실행 시킨다.
- setState는 콜백함수를 받아 실행하는데, 아무 내용을 넣지 않아도 실행만 한다면 widget에 데이터의 변화를 알리고, build 메서드를 실행하게 한다.
- 이는, 데이터의 변화를 감지하는 것이 아닌 setState 함수 자체가 호출되면 데이터의 변화로 인지하여 build 메서드를 실행한다.
- 그 반증으로 데이터를 먼저 수정하고, setState의 콜백함수에 아무 내용이 들어가지 않아도 수정된 데이터는 화면에 재렌더링 된다.
- 하지만, 가독성의 이유로 데이터의 변화를 가지는 부분은 setState의 콜백함수에 작성한다.
- 위 내용을 ai로 확인 시, 정확한 이해이며, 추가적으로 setState는 비동기적으로 실행되며, 다음 프레임에 build 메서드를 실행한다.
- 만약 많은 setState가 실행될 경우, 플러터가 이를 최적화하여 한 번만 build 메서드를 실행한다.