class ExStatelessWidget extends StatelessWidget {
@override
Widget build(BuildContext context) {
print("build() 실행");
return Text("Stateless Widget");
}
}
- 🌀 생명주기
1.create - 생성
2.build() - 화면 구성
3.dispose() X - 위젯이 바로 삭제됨
class MyStatefulWidget extends StatefulWidget {
@override
_MyStatefulWidgetState createState() => _MyStatefulWidgetState();
}
class _MyStatefulWidgetState extends State<MyStatefulWidget> {
@override
void initState() {
super.initState();
print("initState() - 처음 실행");
}
@override
void didChangeDependencies() {
super.didChangeDependencies();
print("didChangeDependencies() - 의존성 변경 시 실행");
}
@override
Widget build(BuildContext context) {
print("build() - 화면이 다시 그려질 때 실행");
return Text("Stateful Widget");
}
@override
void didUpdateWidget(covariant MyStatefulWidget oldWidget) {
super.didUpdateWidget(oldWidget);
print("didUpdateWidget() - 부모 위젯이 변경될 때 실행");
}
@override
void deactivate() {
print("deactivate() - 위젯이 트리에서 제거될 때 실행");
}
@override
void dispose() {
print("dispose() - 위젯이 완전히 삭제될 때 실행");
super.dispose();
}
}
- createState() - State 객체 생성
- initState() - 초기 상태 설정 (한 번만 실행)
- didChangeDependencies() - 의존성이 변경될 때 실행
- build() - UI 구성 (상태 변경 시 다시 실행)
- didUpdateWidget() - 부모 위젯이 변경될 때 실행
- deactivate() - 위젯이 위젯 트리에서 제거될 때 실행
- dispose() - 위젯이 완전히 삭제될 때 실행