본문 바로가기
언어 공부/Flutter

[Flutter] Stateless Widget와 Stateful Widget

by 안다니. 2020. 8. 5.
반응형

Flutter Stateless Widget & stateful Widget

 

Stateless Widget은 상태를 가지지 않은 위젯입니다. 화면이 랜더링이 되고 나서 그 이후에는 변경이 되지 않은 작업을 할 때 많이 사용을 합니다.

 

Stateful Widget은 Stateless와 반대로 상태를 가질 수 있는 위젯입니다. 화면이 랜더링이 되고 나서, 사용자에게 입력을 받거나 클릭으로써 상태가 바뀌는 등 작업에 사용을 합니다. ex)CheckBox,Silder 등

 

즉 Sateless Widget은 UI작업을 할 때, 바로바로 보기 위해 사용을 합니다. (보여주기만 하는 것)

Sateful Widget은 상태를 가지고 컨트롤 할 때 사용합니다. (터치 컨트롤)

 

이렇게 나눈 이유는 두 개의 LifeCylce이 다르기 때문입니다.

Udemy Learn Flutter & Dart to build iOS & Android App

 

Stateless는 보여주기만 하는 build로 넘어가는데, 사실 Stateless도 상태를 가집니다.

하지만 변경 할 수 없는 상태를 가지는 Widget입니다. 반대로 Stateful은 변경이 가능한 Widget입니다.

반응형

출처 : https://velog.io/@ieed0205/Flutter-1.-Lifecycle생명주기

 

위 그림은 Stateful Widget의 Lifecycle 구조입니다.

 

initSate는 생성 될 때 -> setSate()는 build에서 액션을 수행하게끔 상태를 가지게 합니다. ->dispose()는 State 객체가 영구적으로 제거 된다는 뜻 입니다. Build 되지 않는 화면을 말합니다.

 

 

class MyApp extends StatefulWidget {
  @override
  _MyAppState createState() => _MyAppState();
}

class _MyAppState extends State<MyApp> {
  @override
  Widget build(BuildContext context) {
    return Scaffold( 
    );
  }
}
//기본적인 Stateful

 

반응형

댓글