Flutter - 위젯 생명주기

m_solasid0·2025년 3월 23일

✔️ StatelessWidget - 상태 변경 불가능

  • build()만 실행
class ExStatelessWidget extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    print("build() 실행");
    return Text("Stateless Widget");
  }
}
  • 🌀 생명주기
    1.create - 생성
    2.build() - 화면 구성
    3.dispose() X - 위젯이 바로 삭제됨

✔️ StatefulWidget - 상태 변경 가능

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();
  }
}
  • 🌀 생명 주기
  1. createState() - State 객체 생성
  2. initState() - 초기 상태 설정 (한 번만 실행)
  3. didChangeDependencies() - 의존성이 변경될 때 실행
  4. build() - UI 구성 (상태 변경 시 다시 실행)
  5. didUpdateWidget() - 부모 위젯이 변경될 때 실행
  6. deactivate() - 위젯이 위젯 트리에서 제거될 때 실행
  7. dispose() - 위젯이 완전히 삭제될 때 실행
profile
Let's do it now

0개의 댓글