본문 바로가기
프로그래밍

👨‍💻 [Flutter] Flutter 에서 StatelessWidget 은 무엇인가요?

by 밝음의기둥 2024. 11. 15.
반응형

👨‍💻 안녕하세요, 윌리 프로젝트의 윌리 입니다.

Flutter 에서 StatelessWidget 은 무엇인지 간략히 알아보았습니다.


질문 >

Flutter 에서 StatelessWidget 은 무엇인가요?

답변 >

StatelessWidget은 Flutter에서 상태가 변하지 않는 위젯을 만들 때 사용하는 기본적인 위젯 클래스입니다. 화면에 표시될 내용과 레이아웃을 정의하지만, 생성된 후에는 상태가 바뀌지 않는 위젯을 나타낼 때 주로 사용됩니다.

StatelessWidget의 특징

  1. 상태 불변:
    • StatelessWidget은 생성된 후 다시 렌더링할 때도 동일한 모양과 기능을 유지합니다. 위젯의 속성(properties)은 변경되지 않으며, 부모 위젯에서 전달된 데이터가 바뀌지 않는 한, 화면에 표시되는 내용도 그대로 유지됩니다.
  2. build 메서드:
    • StatelessWidget은 build() 메서드를 필수적으로 오버라이드해야 하며, 위젯의 레이아웃이나 화면에 표시될 UI를 이 메서드에서 정의합니다. build() 메서드는 다른 위젯을 리턴하며, 계층 구조를 통해 복잡한 UI를 구성할 수 있습니다.
  3. 재사용성:
    • StatelessWidget은 변경되지 않는 값에 대해 최적화되어 있어, 동일한 구조를 여러 번 사용해도 성능에 큰 영향을 주지 않습니다. 이로 인해 간단한 UI나 상태가 필요 없는 위젯에서 자주 사용됩니다.
  4. 불필요한 렌더링 방지:
    • 상태가 변경될 필요가 없으므로 Flutter의 상태 관리 매커니즘에 의한 불필요한 리렌더링을 피할 수 있습니다.

StatelessWidget의 예제

아래는 간단한 StatelessWidget 예제입니다. 이 예제에서는 "Hello, Flutter!"라는 텍스트가 표시됩니다.

import 'package:flutter/material.dart';

class MyStatelessWidget extends StatelessWidget {
  // 생성자에서 값을 전달받을 수 있지만, 이 값들은 변하지 않음
  final String title;

  MyStatelessWidget({required this.title});

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text(title),
      ),
      body: Center(
        child: Text(
          'Hello, Flutter!',
          style: TextStyle(fontSize: 24),
        ),
      ),
    );
  }
}

언제 StatelessWidget을 사용해야 할까?

  • 고정된 데이터를 보여줄 때, 예를 들어 앱의 상단바, 메뉴 버튼, 고정된 이미지와 같은 변하지 않는 UI 요소에 적합합니다.
  • 사용자 인터랙션 없이 정보를 단순히 표시하는 경우, 예를 들어 제목이나 설명 텍스트와 같은 간단한 UI 요소에 사용할 수 있습니다.
  • 성능이 중요한 경우: StatelessWidget은 상태 관리가 필요하지 않아, 성능에 있어 더 가벼운 위젯이 됩니다.

StatelessWidget과 StatefulWidget의 차이점

  • StatelessWidget은 상태가 변하지 않는 고정된 UI에 적합하고, StatefulWidget은 내부 상태를 가지며 상태 변경에 따라 UI가 다시 렌더링되어야 할 때 사용됩니다.
  • 예를 들어, 버튼을 눌러서 UI가 변경되거나, 애니메이션 효과를 주어야 할 때는 StatefulWidget을 사용해야 합니다.

결론적으로, StatelessWidget은 Flutter 애플리케이션에서 성능과 간결성을 유지하면서 상태가 필요 없는 UI 요소를 표현하는 데 유용한 위젯입니다.


"이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."


🎬 유튜브 채널 🎬

 

위로그@WiLog

📢 안녕하세요, 위로그@WiLog 시청자 여러분, 저는 윌리 입니다. 📢 위로그@WiLog 는 자기주도학습을 목적으로 라이브 스트리밍을 합니다. 📢 1인 게임 개발을 목표로 Unreal과 Blender를 학습 중입니

www.youtube.com

🎬 치지직 채널 🎬

 

위로그 채널 - CHZZK

지금, 스트리밍이 시작됩니다. 치지직-

chzzk.naver.com


반응형