[정리]위젯 vs 헬퍼 메서드 | Flutter 디코딩 하기

valas·2022년 1월 6일
0

플러터

목록 보기
3/7

위젯 vs 헬퍼 메서드 | Flutter 디코딩 하기

코드를 작성하다 보면 위젯을 모듈화하기 위한 방법이 몇가지 있다.

  1. 헬퍼 메서드
Widget someWidget(){
  return Container();
}
  1. 위젯 클래스
class SomeWidget extends StatelessWiget {
  ...
}

시간이 없는 사람들을 위한 2줄 요약

  • Widget Class를 써라
  • 최대한 Const 생성자를 써라

아쉬우면 아래를 좀 더 보자

정리 내용

1. 헬퍼 메서드

  • 변수 전달이 쉬움
  • 직관적이지 않음
  • setState는 전체 래핑 위젯을 재생성함
  • 하지만 전체 UI 섹션을 리빌드 하는것은 트리를 깊어지게(deeper tree : element tree, render object tree, 트리에서 많은 작업을 하게 되므로 결과적으로 더 느리게 한다는 뜻) 만들고 CPU time 을 낭비한다.
  • 만약 아이콘 애니메이션이라도 있다면 초당 60번 UI를 다시그리는 불필요한 작업을 하게 된다.

2. 새로운 위젯 클래스 만들기

  • const 생성자가 최고의 성능
  • 위젯 클래스는 최상위 위젯으로 앱을 느리게 만들지 않음.
  • 또한 내부에서 buildContext를 사용하는 경우 잘못된 buildContext 사용하는 버그를 사전에 차단할 수 있다.

3. 그 외 내용들

  • It never really was free.
  • Classes have a better default behavior. The only benefit of methods is having to write a tiniy bit less code. There's no functional benefit.

공짜 점심은 없다. (헬퍼 메서드가 코드는 적더라도 성능은 아니다.)
클래스는 더 나은 기본 동작을 가진다. Methods는 조금 더 적은 코드를 가지는 거 외에 장점이 없다.

0개의 댓글