플러터 클래스위젯과 함수형위젯

jaybon·2023년 3월 12일
0

플러터 flutter

목록 보기
11/16

Flutter에는 위젯을 만드는 두 가지 주요 방법이 있습니다. 클래스 위젯과 함수에 의해 반환되는 위젯입니다.

클래스 위젯은 StatelessWidget 또는 StatefulWidget과 같은 기존 위젯 클래스를 확장하는 새 클래스를 정의하여 생성됩니다. 이 클래스에는 위젯 트리를 반환하는 빌드 메서드가 포함되어 있습니다. build 메서드는 위젯을 빌드하거나 업데이트해야 할 때마다 호출됩니다.

다음은 클래스 위젯의 예입니다.

javaCopy codeimport 'package:flutter/material.dart';

class MyWidget extends StatelessWidget {
  
  Widget build(BuildContext context) {
    return Container(
      child: Text('Hello, world!'),
    );
  }
}

이 예제에서는 StatelessWidget을 확장하는 MyWidget이라는 새 클래스를 만듭니다. Text 위젯을 포함하는 Container 위젯을 반환하는 build 메서드를 구현합니다.

반면 함수에 의해 반환되는 위젯은 위젯 트리를 반환하는 함수를 정의하여 생성됩니다. 이 함수는 위젯을 빌드하거나 업데이트해야 할 때마다 호출됩니다.

다음은 함수가 반환하는 위젯의 예입니다.

javascriptCopy codeimport 'package:flutter/material.dart';

Widget myWidget() {
  return Container(
    child: Text('Hello, world!'),
  );
}

이 예제에서는 텍스트 위젯을 포함하는 컨테이너 위젯을 반환하는 myWidget이라는 함수를 정의합니다.

클래스 위젯과 함수에 의해 반환되는 위젯의 주요 차이점은 생성 및 업데이트 방법에 있습니다. 클래스 위젯은 위젯 내에서 상태 및 논리를 캡슐화하는 방법을 제공하며 setState 메서드를 사용하여 업데이트할 수 있습니다. 함수에 의해 반환된 위젯은 더 간단하고 쉽게 만들 수 있지만 동일한 수준의 캡슐화 및 상태 관리를 제공하지 않습니다.

전반적으로 클래스 위젯과 함수에 의해 반환된 위젯 사용 사이의 선택은 응용 프로그램의 특정 요구 사항에 따라 다릅니다. 위젯 내에서 상태와 로직을 캡슐화해야 하는 경우 클래스 위젯이 더 나은 선택일 수 있습니다. 간단한 위젯 트리만 반환하면 되는 경우 함수에서 반환하는 위젯이 더 효율적일 수 있습니다.

profile
티스토리 블로그 https://ondolroom.tistory.com/

0개의 댓글