Flutter에서 위젯은 앱의 UI를 구성하는 기본 요소입니다. 위젯은 각자의 라이프 사이클을 가지고 있으며, 이는 위젯이 앱 내에서 어떻게 생성, 업데이트 및 제거되는지 정의합니다.
1. StatelessWidget 라이프 사이클
StatelessWidget은 불변하는 위젯입니다. 즉, 위젯의 상태가 변경되지 않기 때문에 라이프 사이클은 매우 간단합니다.
- 생성: StatelessWidget 클래스의 build 메서드가 호출되어 위젯 트리가 생성됩니다.
- 삽입: 위젯 트리가 앱 화면에 표시됩니다.
- 제거: 위젯 트리가 앱 화면에서 제거됩니다.

2. StatefulWidget 라이프 사이클
StatefulWidget은 상태가 변경될 수 있는 위젯입니다. 따라서 StatelessWidget보다 더 복잡한 라이프 사이클을 가지고 있습니다.
- 생성: StatefulWidget 클래스의 createState 메서드가 호출되어 위젯 상태 객체가 생성됩니다.
- 초기화: initState 메서드가 호출되어 위젯 상태 객체가 초기화됩니다.
- 빌드: build 메서드가 호출되어 위젯 트리가 생성됩니다.
- 삽입: 위젯 트리가 앱 화면에 표시됩니다.
- 업데이트: setState 메서드가 호출되어 위젯 상태가 변경되면 build 메서드가 다시 호출되어 위젯 트리가 업데이트됩니다.
- 제거: dispose 메서드가 호출되어 위젯 상태 객체가 제거됩니다.

3. 라이프 사이클 메서드
다음은 위젯 라이프 사이클에서 중요한 메서드입니다.
- initState: 위젯 상태 객체를 초기화하는 데 사용됩니다.
- build: 위젯 트리를 생성하는 데 사용됩니다.
- didChangeDependencies: 위젯의 종속성이 변경될 때 호출됩니다.
- didUpdateWidget: 위젯의 props가 변경될 때 호출됩니다.
- deactivate: 위젯이 비활성화될 때 호출됩니다.
- dispose: 위젯 상태 객체를 제거하는 데 사용됩니다.
4. StatelessWidget vs StatefulWidget 비교
기능StatelessWidgetStatefulWidget
상태 변경 | 불가능 | 가능 |
라이프 사이클 | 간단 | 복잡 |
성능 | 더 나은 | 상대적으로 낮음 |
사용 사례 | UI 요소, 아이콘, 버튼 | 동적 UI, 애니메이션 |
'new' 카테고리의 다른 글
Flutter에서 ListView.builder() 사용하기 (0) | 2024.03.06 |
---|---|
Flutter에서 VoidCallback 사용하기 (0) | 2024.03.06 |
Flutter에서 위젯 크기 제약 조건 설정: BoxConstraints 소개 (0) | 2024.03.06 |
Flutter에서 스크롤 가능한 화면 만들기: SingleChildScrollView 소개 (0) | 2024.03.06 |
Flutter Widget: Positioned vs Align 비교 분석 (0) | 2024.03.06 |