Stateless Widget은 상태를 가지지 않은 위젯입니다. 화면이 랜더링이 되고 나서 그 이후에는 변경이 되지 않은 작업을 할 때 많이 사용을 합니다.
Stateful Widget은 Stateless와 반대로 상태를 가질 수 있는 위젯입니다. 화면이 랜더링이 되고 나서, 사용자에게 입력을 받거나 클릭으로써 상태가 바뀌는 등 작업에 사용을 합니다. ex)CheckBox,Silder 등
즉 Sateless Widget은 UI작업을 할 때, 바로바로 보기 위해 사용을 합니다. (보여주기만 하는 것)
Sateful Widget은 상태를 가지고 컨트롤 할 때 사용합니다. (터치 컨트롤)
이렇게 나눈 이유는 두 개의 LifeCylce이 다르기 때문입니다.
Stateless는 보여주기만 하는 build로 넘어가는데, 사실 Stateless도 상태를 가집니다.
하지만 변경 할 수 없는 상태를 가지는 Widget입니다. 반대로 Stateful은 변경이 가능한 Widget입니다.
위 그림은 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
'언어 공부 > Flutter' 카테고리의 다른 글
[Flutter] Expanded (레이아웃 그림 벗어남 방지) (0) | 2020.08.07 |
---|---|
[Flutter] Card & ListTitle & Icon (0) | 2020.08.07 |
[Flutter] CircleAvatar & Fonts (0) | 2020.08.06 |
[Flutter] MainAxisAlignment (Axis) (0) | 2020.08.05 |
[React-Native] 2015 맥북프로에 설치하기 (0) | 2020.07.29 |
댓글