반응형

StatefulWidget(스테이트풀 위젯) 의 라이프 사이클에 대해 알아보도록 하겠습니다. 라이프 사이클과 함께 각 사이클에서 호출되는 훅 메소드도 알아보도록 하겠습니다.


StatefulWidget의 라이프사이클 이란?

스테이트풀 위젯에는 lifecycle(생명주기)이 존재합니다. 플러터 앱에서는 위젯의 생성부터 파기까지의 위젯의 생명주기가 관리 되어지고 있고, 생명주기의 특정 시점에서 특정 메소드가 호출되어집니다. 이러한 라이프사이클의 상태를 이해함으로써 위젯의 정교한 제어가 가능해집니다. 위젯을 만들 때 우리가 잘 인식하지 않고 사용하고 있는 build 메소드나 initState메소드 역시 라이프사이클과 관련된 메소드 입니다.

 

라이프 사이클(lifecycle) 개요

createState, initState, build, setState, dispose는 앱을 만들면서 많이 이용하게 되는 메소드들 입니다. 아래 개요도를 보면서 이러한 메소드들이 언제 호출되는지 살펴보세요.


 

라이프 사이클 메소드

라이프 사이클에는 대략적으로 화면 구축, 재 드로잉(다시그리기),  화면파기 순으로 이뤄집니다. 각 사이클에서 호출되어지는 훅 메소드를 알아보겠습니다.

화면구축

createState()

  • statefulWidget을 구축하자마자 호출됩니다.
  • 위젯 트리에 상태를 만들기 위해 호출됩니다.

initState()

  • 위젯 트리 초기화를 합니다.
  • 단 한 번만 호출됩니다.

didChangeDependencies()

  • state객체의 종속성이 변경될 때 호출됩니다.
  • initState뒤에 호출되지만 그 이외에도 호출됩니다.

재 드로잉

build()

  • 위젯으로 만든 UI를 구축합니다.
  • 다양한 곳에서 반복적으로 호출됩니다.
  • 변경된 부분 트리를 감지하고 대체합니다.

didUpdateWidget()

  • 위젯의 구성이 변경될 때마다 호출됩니다.
  • 부모 위젯이 변경되고 다시 그려져야 할 때 호출됩니다.
  • oldWidget 인수를 취득해 비교합니다.

setStat

  • 상태가 변경되었을 때 프레임워크에 상태가 변경됨을 알립니다.

화면 파기

deactivate()

  • state오브젝트가 트리로부터 삭제될 때마다 호출됩니다.

dispose()

  • 객체가 트리에서 완전히 삭제되고 두 번 다시 빌드되지 않으면 호출됩니다.

 


여기까지 읽어주셔서 감사합니다.

반응형
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기