2023. 10. 10. 20:18ㆍ플러터
initState를 보고 실행할 경우 처음 한번 타는 것은 단어만 봐도 예측이 가능하다
폼디에서도 사용한 라이프 사이클의 init도 동일하기 떄문이다
다만 다른 상태는 어떠한 것이 있는지 정확히 모르는 나이기 때문에 생명주기에 대해 찾아보았다
createState()
mounted == true
initState()
didChangeDependencies()
build()
didUpdateWidget()
setState()
deactivate()
dispose()
mounted == false
위의 단계가 플러터의 라이프 사이클이라고 한다
몇몇개는 언뜻 봐도 추측이 가능하다 몇몇 주기는 추측이 어려워서 찾아보았다
createState() : stateful 위젯을 만드는 주기로 state의 인스턴스 반환
mounted == true : initState보다 먼저 행해지는 단계로 initState에서 mounted를 체크하는 이유다
initState() : 최초 한 번만 호출 되는 단계
didChangeDependencies() : 데이터 객체가 호출될 경우, 업데이트되는 위젯을 상속한 경우로 API 호출이 예시다
build() : 렌더링 과정으로, UI위젯에 렌더링 될때마다 호출
didUpdateWidget() : 위젯을 재구성해야하는 경우로, 호출 후에는 항상 build를 탐
setState() : 데이터가 변경됨을 알리는데 사용되며, 동기적인 callback에 자주 사용
deactivate() : state가 제거될 경우 호출되며 코스트가 저렴하여 자주 호출할 수 있다함
dispose() : state 객체가 영구히 제거된 경우
mounted == false
확인하고나니 다양하게 사용할 방도들이 떠오르는 것을 보아 찾아보기 잘한듯하다
다음 토이 프로젝트때는 적극적으로 사용해봐야겠다
'플러터' 카테고리의 다른 글
Row, Column과 mainaxisalignment, crossaxisalignment에 대해 (0) | 2023.10.16 |
---|---|
픽셀 오버플로우 (0) | 2023.10.12 |
Future 등 비동기에 대하여 (1) | 2023.10.12 |
Future를 구조체에서 사용하는 방법 (0) | 2023.10.10 |
Image.network - loadingBuilder, errorBuilder (0) | 2023.10.05 |