2025-08-02 18:36
Status:
Tags: 플러터
플러터 위젯
- UI 구성 요소의 기본 단위
- 모든 시각적 요소 구현하는 불변 객체
- 불변 객체라서 한번 만들어지면 수정 불가, 새로 생성
- 모든 것이 위젯이다
위젯 트리 구조
- 위젯들 간 계층적 트리 구조
상태 없는 위젯과 있는 위젯
- 없는 건 정적이고 있는 건 동적으로 생각
- 보통 최대한 정적으로 만들고 불가피한 것은 동적으로
- 리액트 컴포넌트 랑 커스텀 위젯이랑 사실상 거의 같음
구분 | StatelessWidget | StatefulWidget |
---|---|---|
상태 변경 | 불가능 - 생성 후 고정[^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] |