본문 바로가기

Flutter & Dart

StatefulWidget의 라이프 사이클

 

(노마드 코더님의 무료 강의에서 기억하고 싶은 것들을 기록한 내용입니다.

광고, 홍보 아니고 강의 내용 정말 좋아서 Flutter랑 Dart 입문하시는 분들께 강력 추천!)

 

우선 위젯 클래스에는 StatelessWidget과 StatefulWidget이 있음.

StatelessWidget은 데이터가 고정돼 있어서 UI를 있는 그대로 반영하는 위젯이라면,

StatefulWidget은 여러 상호작용을 통해 데이터가 변할 때 사용하는 위젯.

 

StatefulWidget에서는 아주 많은 메소드들이 실행되고 이런 과정 속에서 라이프사이클이 반복됨

 

1. initState 메소드

: initState에서 우리는 변수를 초기화하고 API 업데이트를 구독한다거나 할 수 있음. initState는 build 이전에 실행되고 프린트로 찍어보면 실제로도 그럼. (initState 메소드는 항상 build 메소드보다 먼저 선언돼야 함. 그리고 무조건 단 한 번만 호출돼야 함)

 

2. build 메소드

: build는 위젯에서 UI를 만들며 initState 이후에 실행됨

 

3. dispose 메소드

: 어떤 위젯이 위젯 트리에서 제거될 때는 dispose 메서드가 실행됨. dispose 메서드 안에서 이벤트 리스너 같은 것들을 구독 취소하는 것

 

그래서, 변수가 초기화되고 UI가 만들어지고, 또 이렇게 만들어진 위젯이 제거되는 initState -> build -> dispose 싸이클이 반복된다.