flutter/flutter

[flutter] StatelessWidget, StatefulWidget

KIMJAVAN 2023. 9. 1. 11:06
728x90

[1] StatelessWidget
상태가 변경되지 않는 정적인 UI 요소를 나타내는 데에 사용됨.

한 번 생성되면 내부의 데이터나 상태가 변하지 않음.

statelesswidjet 클래스를 상속하여 사용자 정의 위젯을 만들 수 있음.

변경 가능한 데이터를 나타내지 않거나 외부로부터 주어진 데이터를 표시하는 데 사용됨

 

특징 :

# 내부 상태가 없음. 한 번 빌드되면 상태 변경X

# 외부에서 제공된 데이터나 속성(props)를 기반으로 UI를 구성

# 화면이 다시 그려져야 할 때 마다 build 메서드 호출되어 UI가 업데이트

# 빌드 과정에서 새로운 위젯을 만들고 변환함. 이 때 필요한 데이터는 주로 생성자 매개변수로 받아 사용함.

 

 



[2] StatefulWidget
StatefulWidget은 Flutter 프레임워크에서 사용되는 하나의 위젯 클래스 타입입니다. 이 위젯은 상태를 가지며, 상태가 변경되면 UI를 업데이트하는 데 사용됩니다. StatefulWidget은 주로 동적인 UI 요소를 나타내고, 사용자 상호 작용에 응답하거나 데이터가 변경될 때 UI를 업데이트하는 데 사용됩니다.

StatefulWidget 클래스를 상속하여 사용자 정의 위젯을 만들 수 있습니다. 이러한 위젯은 내부적으로 상태 객체(State 객체)를 가지며, 이 상태 객체는 위젯의 상태와 데이터를 관리합니다. 상태 객체는 StatefulWidget의 수명 주기 동안에도 지속되며, 상태가 변경되면 setState 메서드를 호출하여 UI를 업데이트합니다.

 

특징:

  • 내부 상태를 가집니다. 즉, 상태 객체(State 객체)를 통해 상태를 관리하고 변경할 수 있습니다.
  • 상태가 변경되면 setState 메서드를 호출하여 UI를 다시 렌더링하고 업데이트합니다.
  • 상태 객체는 StatefulWidget 수명 주기 동안 지속됩니다.
  • 사용자 입력, 데이터 변경 등과 같은 이벤트에 응답하여 동적인 UI를 만들거나 업데이트할 수 있습니다.

StatefulWidget 클래스를 상속하여 사용자 정의 위젯을 생성할 때는 createState 메서드를 오버라이딩하여 상태 객체를 생성합니다. State 클래스를 확장하여 상태 객체를 정의하고, 상태 객체 내에서 UI와 상태를 관리합니다.