Flutter LifeCycle

손병진·2021년 7월 8일
0

Flutter LifeCycle

  • 먼저 stless 위젯에서는 상태값 없이 받은 데이터로 화면에 보여주는 구성이기 때문에 단순하게 동작한다. 반면에 stful 위젯에서는 상태값을 지니고 있기 때문에 이를 토대로 위젯이 나오고 상태값이 변하고 위젯이 제거되는 동작들 사이사이에 함수가 실행될 수 있게끔 좀더 복잡한 구조의 라이프 사이클을 갖추고 있다.

Stateless Widget

Constructor

  • 변수를 선언하여 상위 위젯이 있을 경우 파라미터를 받아오거나 해당 값을 초기화 시켜주는 지점.

build

  • 받아온 데이터에 따라 ui를 구성하고, 상위 위젯에서 받아오는 값이 변할 때마다 rebuild 를 실행한다.

Stateful Widget

createState

  • stless 위젯의 constructor 와 동일하게 상위 위젯에서 값을 받아오는 지점이다.

initState

  • stful 위젯이 실행되고 처음에만 실행되면 상태값을 초기화 시켜주는 활용한다.

didChangeDependencies

  • 위 initState 가 실행되고나서 그 다음인데, 해당 위젯이 직접 상속받고 있는 위젯이거나 상위에 provider 가 존재하여 변화를 감지했을 때 실행한다. 부모 위젯인 경우가 아닌 어느 위젯에 의존성을 지닌 특정한 경우에 사용된다.

build

  • 받아온 데이터나 선언한 상태값에 대하여 ui를 구성하고 상태값이 변했을 때 rebuild 된다.

didUPdateWidget

  • 이 지점이 바로 부모 위젯이 변했을 때 실행되는 지점이다. build 함수가 실행되기 직전에 호출되며, 부모 위젯의 변경에 따라 특정 ui 혹은 데이터가 초기화 되어야 하는 경우 setState 로 초기화 시킬 수 있다.

deactive

  • stful 위젯은 stless 와 다르게 상태 객체를 지니는데, 이 상태 객체가 제거되었을 때 호출된다.
    위젯이 아닌 상태객체 만이 제거되고 다시 추가되는 경우가 있는데 이때 활용 가능하고 위젯이 완전히 제거되기 전에 해당 상태값을 활용해야 할때도 사용될 수 있다.

dispose

  • 해당 위젯이 완전히 제거되었을때 호출된다. 그렇기 때문에 이 함수에서는 위젯 내의 상태 객체 값에 접근할 수 없다는 점을 주의해야 한다.

https://dev-yakuza.posstree.com/ko/flutter/widget/lifecycle/
https://stackoverflow.com/questions/41479255/life-cycle-in-flutter

profile
https://castie.tistory.com

0개의 댓글