함수형 위젯 vs 클래스형 위젯

혁진·2023년 8월 21일
0

오늘 코드를 작성하던 중
이걸 함수형으로 적어야하나 또는 클래스형으로 적어야하나 고민이 되었다.

그래서 찾아봤다.

출처
https://velog.io/@jaybon/%ED%94%8C%EB%9F%AC%ED%84%B0-%ED%81%B4%EB%9E%98%EC%8A%A4%EC%9C%84%EC%A0%AF%EA%B3%BC-%ED%95%A8%EC%88%98%ED%98%95%EC%9C%84%EC%A0%AF

함수형 위젯 vs 클래스 위젯 차이점

Q : 플러터 클래스위젯과 함수형위젯 의 차이를 알려줘

플러터(Flutter)에서 클래스 위젯과 함수형 위젯은 두 가지 주요한 위젯 유형입니다. 각각의 차이점은 아래와 같습니다:

  1. 클래스 위젯 (Stateful/Stateless 위젯):
  • 클래스 위젯은 Dart 프로그래밍 언어의 클래스를 사용하여 작성됩니다.
  • 클래스 위젯은 상태 관리가 필요한 경우 Stateful 위젯으로 작성됩니다. Stateful 위젯은 StatefulWidget 클래스를 상속받아 구현됩니다.
  • 클래스 위젯은 상태 관리가 필요하지 않은 경우 Stateless 위젯으로 작성됩니다. Stateless 위젯은 StatelessWidget 클래스를 상속받아 구현됩니다.
  • 클래스 위젯은 상태 변경이 필요할 때 setState() 함수를 사용하여 위젯을 다시 빌드할 수 있습니다.
  1. 함수형 위젯 (Functional 위젯):
  • 함수형 위젯은 Dart 프로그래밍 언어의 함수를 사용하여 작성됩니다.
  • 함수형 위젯은 상태 관리가 가능하지 않습니다. 따라서 주로 데이터 전달과 간단한 화면 구성에 사용됩니다.
  • 함수형 위젯은 실행 시점에 한 번만 렌더링되므로, 상태 변경이 필요한 경우에는 클래스 위젯을 사용하는 것이 좋습니다.
  • Flutter 1.17 이후, hooks_riverpod와 같은 패키지를 사용하면 상태 관리 기능을 함수형 위젯에 적용할 수 있습니다.

결국, 클래스 위젯과 함수형 위젯의 선택은 개발자의 요구 사항, 선호하는 방식, 상태 관리 기능의 필요 여부에 따라 결정됩니다.

정리

함수형 위젯

  • 빌드가 중간 중간 없음
    그만큼 효율적이지만 캡슐화가 X
    그리고 rebuild 가 안됨

클래스형 위젯

  • 빌드가 중간 중간 있기 때문에 필요한부분만 rebuild 가 가능하고 캡슐화또한 가능
    하지만 rebuild 불가
profile
긍정적으로 살래요

0개의 댓글