<aside> 💡 Flutter는 위젯으로 시작해서 위젯으로 끝난다. Flutter에서 화면에 표시된 모든 요소가 위젯이며, 눈에 보이지 않지만 화면을 구성하는 레이아웃(Layout)도 위젯이다.

위젯 종류

</aside>

Stateful Widget


어떤 상태값을 가지고 있으며, 해당 상태값에 의해 화면에 움직임이나 변화를 표현할 때 사용한다.

ex) 텍스트 필드, 버튼, 서버에서 전달받은 값을 화면에 표시하는 위젯 등

예시와 같이 Stateful Widget은 사용자의 인터렉션에 의해 모양이나 형태를 변경할 때 사용한다. Stateful WidgetStatefulWidget을 상속받아 생성한다.

Stateless Widget


Stateless WidgetStateful Widget과는 반대로, 어떠한 상태도 가지고 있지 않은 정적인 위젯이다. 어떠한 상태값도 가지고 있지 않기에 어떠한 움직이나 변화가 없다.

ex) 텍스트, 이미지 등.

예시와 같이 Stateless Widget은 화면에는 표시되지만, 사용자와 어떠한 인터렉션도 하지않으며, 어떠한 움직임이나 변화를 가지고 있지 않는다. Stateless WidgetStatelessWidget을 상속하여 생성한다.

Widget tree


기본적으로 Flutter는 위젯을 사용하여 개발을 하게 된다. 한 위젯은 여러 위젯을 포함할 수 있으며, 모든 위젯은 부모-자식 관계를 가지게 된다. 이렇게 부모-자식 관계를 가지게 되면, 이를 Tree 계층 구조로 표현할 수 있으며, 관리할 수 있다.