728x90
반응형
Flutter의 라이프사이클은 Flutter 애플리케이션의 실행 및 종료 동안 위젯의 상태와 생명주기를 관리하는 방법입니다. 이 라이프사이클은 주로 StatefulWidget에서 중요하게 다뤄지며, State 클래스의 다양한 메서드를 통해 위젯의 상태가 어떻게 변화하는지를 보여줍니다. 여기 Flutter 라이프사이클의 주요 메서드와 설명입니다:
1. initState()
- 설명: 위젯이 처음 생성될 때 호출되는 메서드입니다. 초기화 작업을 수행할 때 사용되며, 단 한 번만 호출됩니다.
- 사용 예시: 초기 API 호출, 애니메이션 컨트롤러 초기화 등.
- 주의사항: super.initState()를 반드시 호출해야 합니다.
2. didChangeDependencies()
- 설명: 위젯이 부모 위젯의 변경에 따라 종속성에 변화가 있을 때 호출됩니다. initState() 이후 또는 InheritedWidget의 변경이 감지될 때 호출될 수 있습니다.
- 사용 예시: InheritedWidget을 통해 전달받은 데이터를 참조할 때 사용됩니다.
- 주의사항: super.didChangeDependencies()를 호출해야 합니다.
3. build(BuildContext context)
- 설명: 위젯이 화면에 그려질 때 호출되는 메서드로, 가장 중요한 메서드입니다. 위젯 트리를 구성하고 화면에 표시될 UI를 반환합니다.
- 사용 예시: 위젯의 UI를 정의하고 필요한 하위 위젯들을 구성할 때 사용됩니다.
- 주의사항: 상태가 변경될 때마다 이 메서드가 다시 호출됩니다.
4. setState()
- 설명: 상태가 변경될 때 호출하여 UI를 재구성하는 메서드입니다. 상태가 변경될 때 build() 메서드를 다시 호출하여 새로운 상태로 UI를 업데이트합니다.
- 사용 예시: 버튼 클릭 시 상태를 변경하여 화면을 다시 그리게 할 때 사용됩니다.
- 주의사항: 비동기 작업이 완료된 후에 setState()를 호출할 때는 위젯이 여전히 활성 상태인지 확인하는 것이 좋습니다.
5. deactivate()
- 설명: 위젯이 트리에서 제거될 때 호출됩니다. 단, 위젯이 다시 추가될 수도 있기 때문에 이 시점에서는 완전히 소멸되지는 않습니다.
- 사용 예시: 특별한 경우가 아니면 자주 사용되지는 않습니다.
- 주의사항: super.deactivate()를 호출해야 합니다.
6. dispose()
- 설명: 위젯이 완전히 소멸될 때 호출됩니다. 리소스 정리, 애니메이션 컨트롤러 해제, 스트림 리스너 취소 등 메모리 누수를 방지하기 위해 사용됩니다.
- 사용 예시: 애니메이션 컨트롤러, 스트림, 이벤트 리스너 등을 해제할 때 사용됩니다.
- 주의사항: super.dispose()를 반드시 호출해야 합니다.
7. didUpdateWidget(covariant T oldWidget)
- 설명: 위젯의 부모가 새 위젯을 구성하고 이 위젯의 상태 객체가 동일할 때 호출됩니다. 즉, 위젯의 속성이 변경되었을 때 호출됩니다.
- 사용 예시: 속성 값이 변경되었을 때 특정 로직을 실행할 필요가 있을 때 사용됩니다.
- 주의사항: super.didUpdateWidget(oldWidget)을 호출해야 합니다.
이 메서드들은 주로 StatefulWidget에서 사용되며, 위젯의 상태 관리와 라이프사이클을 통해 애플리케이션의 복잡한 UI 로직을 구현할 수 있게 해줍니다.
'Category > Flutter' 카테고리의 다른 글
| Flutter에서 FutureBuilder로 비동기 데이터 처리하기 (0) | 2024.11.03 |
|---|---|
| Dart에서 JSON 쉽게 다루기 : jsonDecode 사용법과 예제 (1) | 2024.11.03 |
| [Flutter] StatelessWidget, StatefulWidget (0) | 2024.11.01 |
| Flutter 프로젝트에서 UI 코드 구조 시각화로 가독성 높이기 (0) | 2024.10.31 |
| Flutter UI 디자인을 위한 Flutter 위젯과 속성 알아보기 (1) | 2024.09.28 |