[개발] Flutter

[Flutter] State<StatefulWidget> 란?

  • -
반응형

State<StatefulWidget>에 대한 설명

Flutter에서 State<StatefulWidget>StatefulWidget의 상태를 관리하는 클래스입니다. Flutter에서 StatefulWidget은 상태가 변경될 수 있는 UI 요소를 의미하며, State는 그 상태를 실제로 유지하고 관리하는 역할을 합니다.

 

 

 

State와 StatefulWidget의 관계

StatefulWidget은 변경 가능한 상태를 갖고, 그 상태를 유지하기 위해 State 객체와 연결됩니다. State 객체는 상태 변경이 발생할 때마다 화면을 다시 렌더링합니다.

 

 

 

 

State<StatefulWidget>의 주요 역할

  • 상태 관리: State 객체는 위젯의 상태를 저장하고, 그 상태를 변경할 수 있습니다. 상태가 변경되면, setState()를 호출하여 UI를 갱신합니다.
  • build 메서드: State 클래스는 build() 메서드를 통해 UI를 구성합니다. 상태가 변경될 때마다 build()가 다시 호출되어 새롭게 업데이트된 UI를 표시합니다.
  • 생명주기 관리: State 객체는 위젯의 생명주기를 관리하며, 위젯이 생성되고 파괴되는 과정에서 적절한 메서드들을 호출합니다. 예를 들어, initState()dispose() 메서드가 사용됩니다.

 

 

 

 

 

 

StatefulWidget과 State의 구조

Flutter에서 StatefulWidgetState는 다음과 같은 구조로 연결됩니다:


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

class _MyStatefulWidgetState extends State<MyStatefulWidget> {
  int _counter = 0;

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

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('StatefulWidget 예제'),
      ),
      body: Center(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: <Widget>[
            Text('버튼을 누른 횟수:'),
            Text(
              '$_counter',
              style: Theme.of(context).textTheme.headline4,
            ),
          ],
        ),
      ),
      floatingActionButton: FloatingActionButton(
        onPressed: _incrementCounter,
        tooltip: 'Increment',
        child: Icon(Icons.add),
      ),
    );
  }
}
    

 

 

 

 

 

 

 

State 클래스의 주요 메서드

  • setState(): 상태가 변경되었음을 Flutter에 알리고, UI를 다시 빌드하는 데 사용됩니다.
  • initState(): 상태가 처음 생성될 때 호출되며, 초기화 작업을 수행합니다.
  • dispose(): 위젯이 제거될 때 호출되며, 자원 해제 등의 작업을 수행합니다.

 

 

 

 

 

 

 

 

생명주기 메서드 예시


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

  @override
  void dispose() {
    // 자원 해제
    super.dispose();
  }

  @override
  Widget build(BuildContext context) {
    // UI 빌드
    return Container();
  }
}
    

 

 

 

 

 

 

 

State<StatefulWidget>의 특징 요약

  • StateStatefulWidget의 상태를 유지하고 관리하는 클래스입니다.
  • 상태가 변경되면 setState() 메서드를 사용하여 UI를 다시 빌드합니다.
  • 위젯의 생명주기를 관리하고, 초기화와 종료 시점에 적절한 작업을 수행합니다.
반응형

'[개발] Flutter' 카테고리의 다른 글

[Flutter] await rootBundle.loadString 란?  (0) 2024.09.25
[Flutter] Future 란?  (0) 2024.09.24
[Flutter] {super.key} 란?  (0) 2024.09.22
[Flutter] onPressed / onTap 차이  (0) 2024.09.21
[Flutter] StatefulWidget 란?  (0) 2024.09.21
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.