flutter study "StatefulWidget"

프랭크 IT·2023년 10월 13일
0

flutter

목록 보기
9/28
post-custom-banner

Flutter에서 StatefulWidget은 변경 가능한 상태를 가질 수 있는 위젯을 나타냅니다. 즉, 해당 위젯의 내부 데이터가 시간에 따라 변경될 수 있으며, 이 변경사항은 UI에 반영됩니다. StatefulWidget은 두 부분으로 구성됩니다: 위젯 부분과 상태 부분입니다.

  1. 위젯 부분 (StatefulWidget 클래스):

    • 이 부분은 주로 위젯의 구성 및 생성에 관련된 코드를 포함합니다.
    • createState 메서드를 오버라이드하여, 상태 객체를 생성하고 반환합니다.
  2. 상태 부분 (State 클래스):

    • 이 부분은 위젯의 상태 및 상태 변경 로직을 포함합니다.
    • setState 메서드를 사용하여 상태를 변경하고, UI를 재구성합니다.

StatefulWidget의 주요 특징은 다음과 같습니다:

  • 상태가 변경될 때마다 UI를 자동으로 업데이트합니다.
  • 생명주기 메서드를 포함하여, 위젯의 생성, 업데이트, 소멸 등의 단계에 대한 로직을 정의할 수 있습니다.

간단한 StatefulWidget 예시는 다음과 같습니다:

class CounterWidget extends StatefulWidget {
  
  _CounterWidgetState createState() => _CounterWidgetState();
}

class _CounterWidgetState extends State<CounterWidget> {
  int _count = 0;

  void _incrementCounter() {
    setState(() {
      _count++;
    });
  }

  
  Widget build(BuildContext context) {
    return Column(
      children: <Widget>[
        Text('현재 카운트: $_count'),
        ElevatedButton(
          onPressed: _incrementCounter,
          child: Text('증가'),
        ),
      ],
    );
  }
}

위의 예제에서 CounterWidgetStatefulWidget로 정의되며, _CounterWidgetState는 해당 위젯의 상태를 관리하는 클래스입니다. _incrementCounter 메서드를 사용하여 카운트 값을 증가시키며, setState를 호출하여 UI를 업데이트합니다.

StatefulWidget을 사용하여 동적인 동작을 가진 위젯을 구성할 수 있습니다. StatefulWidget은 사용자의 인터랙션, 타이머, 네트워크 요청 등과 같이 데이터가 변경될 가능성이 있는 경우에 주로 사용됩니다.

profile
AWS, Vue, Java, flutter, Mongodb, Python, Git , EKS, Docker, 독서, 영어, 에어로빅, 자전거, 농구, 바둑, 풋살, 복싱, Guitar, 글쓰기, 랭체인
post-custom-banner

0개의 댓글