FLUTTER
Flutter - StatefulWidget Life cycle
춘행이
2022. 3. 16. 13:00
728x90
StatefulWidget Life cycle
StatefulWidget의 생명주기는 다음과 같다
출처
https://betterprogramming.pub/stateful-widget-lifecycle-a01c44dc89b0
1. createState()
@override
State<MyHomePage> createState() => _MyHomePageState();
statefulWidget의 필수 메서드로서 state 객체를 생성한다
2. initState()
@override
void initState() {
super.initState();
}
처음으로 호출되는 메서드로서 위젯이 처음으로 생성될 때 맨 처음으로 호출된다
super.initState()를 꼭 포함시켜주자
3. didChangeDependencies()
@override
void didChangeDependencies() {
}
initState() 이후에 호출된다
위젯이 의존하는 데이터의 객체가 호출될 때마다 호출된다
build 메서드는 항상 이 메소드 다음에 호출되므로 거의 필요하지 않다(저도 한 번도 써본 적 없습니다)
4. build()
Widget build(BuildContext context) {
}
필수 메서드
상태에 속한 위젯이 업데이트될 때마다 항상 이 메서드를 실행
즉 didUpdateWidget() 또는 setState() 메서드가 호출될 때 호출
5. didUpdateWidget()
@override
void didUpdateWidget(covariant MyHomePage oldWidget) {
super.didUpdateWidget(oldWidget);
// TODO: implement didUpdateWidget
}
상위 위젯이 구성을 변경하고 위젯을 다시 빌드해야 하는 경우 호출
새 위젯을 이전 위젯과 비교해야 하는 경우 이 메서드 사용
6. deactivate()
@override
void deactivate() {
super.deactivate();
// TODO: implement deactivate
}
위젯이 트리에서 제거될 때 호출
7. dispose()
@override
void dispose() {
super.dispose();
// TODO: implement dispose
}
state가 위젯 트리에서 영구적으로 제거될 때 호출
728x90