본문 바로가기
[개발] 이야기/[Flutter] 이야기

Flutter에서 StatefulWidget과 StatelessWidget의 라이프사이클

by 헤이나우
반응형

Flutter에서 StatefulWidget과 StatelessWidget의 라이프사이클

Flutter는 두 가지 주요 유형의 위젯을 제공합니다: **StatefulWidget**과 StatelessWidget. 이 두 위젯의 가장 큰 차이점은 상태 관리입니다. **StatelessWidget**은 상태가 변하지 않는 위젯을 나타내며, **StatefulWidget**은 상태가 변할 수 있는 위젯을 나타냅니다. 이 글에서는 두 위젯의 라이프사이클을 자세히 살펴보겠습니다.

StatelessWidget의 라이프사이클

**StatelessWidget**은 상태가 변하지 않는 위젯입니다. 따라서 한 번 생성되면 다시 빌드되지 않습니다. **StatelessWidget**의 라이프사이클은 매우 간단합니다:

  1. 생성자 호출: 위젯이 처음 생성될 때 호출됩니다.
  2. build() 메서드 호출: 위젯의 UI를 구성하는 메서드입니다. 이 메서드는 위젯이 처음 생성될 때 한 번 호출됩니다.

Dart

class MyStatelessWidget extends StatelessWidget { @override Widget build(BuildContext context) { return Text('Hello, StatelessWidget!'); } }

AI가 생성한 코드입니다. 신중하게 검토하고 사용하세요. FAQ의 자세한 정보.

StatefulWidget의 라이프사이클

**StatefulWidget**은 상태가 변할 수 있는 위젯입니다. 따라서 상태가 변경될 때마다 다시 빌드됩니다. **StatefulWidget**의 라이프사이클은 다음과 같습니다:

  1. createState()State 객체를 생성합니다. 이 객체는 위젯의 모든 변경 가능한 상태를 유지합니다.
  2. initState()State 객체가 처음 생성될 때 호출됩니다. 초기화 작업을 수행할 수 있습니다.
  3. didChangeDependencies(): 위젯의 종속성이 변경될 때 호출됩니다.
  4. build(): 위젯의 UI를 구성하는 메서드입니다. 상태가 변경될 때마다 호출됩니다.
  5. setState(): 상태를 변경하고, build() 메서드를 다시 호출하여 UI를 업데이트합니다.
  6. deactivate(): 위젯이 트리에서 제거될 때 호출됩니다.
  7. dispose(): 위젯이 완전히 제거될 때 호출됩니다. 리소스를 해제할 수 있습니다.

Dart

`class MyStatefulWidget extends StatefulWidget { @override _MyStatefulWidgetState createState() => _MyStatefulWidgetState(); }

class _MyStatefulWidgetState extends State<MyStatefulWidget> { @override void initState() { super.initState(); // 초기화 작업 }

@override Widget build(BuildContext context) { return Text('Hello, StatefulWidget!'); }

@override void dispose() { // 리소스 해제 작업 super.dispose(); } }`

AI가 생성한 코드입니다. 신중하게 검토하고 사용하세요. FAQ의 자세한 정보.

결론

**StatelessWidget**과 **StatefulWidget**의 라이프사이클을 이해하면 Flutter 애플리케이션의 상태 관리를 더 효과적으로 할 수 있습니다. **StatelessWidget**은 상태가 변하지 않는 간단한 UI 요소에 적합하며, **StatefulWidget**은 사용자 상호작용이나 데이터 변경에 따라 UI가 업데이트되어야 하는 경우에 적합합니다.

반응형

댓글