Lifecycle method

장윤찬·2021년 12월 9일
0

Flutter 발전시키기

목록 보기
3/5

Stateless / Stateful

Lifecycle(생명주기)를 알기 위해서는 상태를 다루는 두개의 State 객체를 알아야한다.

Stateless

Stateless Widgets
constructor Function

build()

변경할 수 없는 상태를 가지는 위젯이다. 즉, 보여주기만 하는 build()메소드로만 넘어간다.

Stateful

Stateful Widget
Constructor Function

initState()

build()

setState()

didUpdateWidget()

Build()

변경가능한 상태를 가지는 위젯이다. 여러 라이프사이클 메소드를 가진다.
라이플사이클 메소드를 통해 원하는 메소드의 호출 순서, 조건을 성정할 수 있다.

initState()

Stateful()위젯이 생성될때, 자동적으로 맨처음 호출되는 메소드이다. (오직 한번만 호출됨)

  • 사용법
void initState() {
  super.initState();
  // todo
}

※반드시 super.initState()를 호출해야한다.※

didChangeDependencies()

위젯 최초 생성 시 initState()바로 다음에 호출되는 메소드이다.
또한, 위젯이 의존하는 데이터의 객체가 호출될때마다 호출된다. 따라서, 상속한 위젯이 업데이트되어 네트워크 호출이 필요한 경우 유용하다.

  • 사용법
void didChangeDependencies() {
  super.didChangeDependencies();
  // todo
}

※반드시 super.didChangeDependencies()를 호출해야한다.※

setState()

개발하는 입장에서 매우 자주 호출되는 메소드이다. 메소드 수행 후 자동으로 build context의 위젯을 rebuild한다. 따라서 유저와의 상호작용을 통해 앱의 상태가 변하도록 한다.

deactivate()

위젯트리에서 상태객체가 지워질때 호출된다.

  • 사용법
void deactivate() {
  super.deactivate();
  // todo
}

※반드시 super.deactivate()를 호출해야한다.※

dispose()

State객체를 영구적으로 제거한다. (해당 화면은 더이상 build되지않음)

profile
Flutter 학습 일기

0개의 댓글