2025-08-02 18:36

Status:

Tags: 플러터

플러터 위젯

  • UI 구성 요소의 기본 단위
  • 모든 시각적 요소 구현하는 불변 객체
  • 불변 객체라서 한번 만들어지면 수정 불가, 새로 생성
  • 모든 것이 위젯이다

위젯 트리 구조

  • 위젯들 간 계층적 트리 구조

상태 없는 위젯과 있는 위젯

  • 없는 건 정적이고 있는 건 동적으로 생각
  • 보통 최대한 정적으로 만들고 불가피한 것은 동적으로
  • 리액트 컴포넌트 랑 커스텀 위젯이랑 사실상 거의 같음
구분StatelessWidgetStatefulWidget
상태 변경불가능 - 생성 후 고정[^7][^8]가능 - setState() 호출로 재렌더링[^9][^7]
생명주기build() 한 번만 호출[^6][^10]복잡한 생명주기 단계 존재[^9][^11]
성능가벼움, 빠른 렌더링[^8][^12]상대적으로 무거움[^7][^12]
사용 사례정적 UI(텍스트, 아이콘)[^8][^13]동적 UI(폼, 카운터, 애니메이션)[^8][^14]
구조단일 클래스[^14][^4]위젯 클래스 + State 클래스[^14][^4]

References

플러터 위젯(Widgets) - 확장 가이드 다트