본문 바로가기
Flutter/Study

HomeScreen({super.key}); vs HomeScreen({Key? key}) : super(key: key); 무슨 차이?

by Maccrey Coding 2025. 2. 14.
반응형

 

결론적으로 말하면 두 코드의 차이점은 명시적인 키 전달 여부입니다.

1️⃣ HomeScreen({super.key});

✅ 설명

  • Dart의 super parameter shorthand(슈퍼 매개변수 단축 문법)를 사용한 형태입니다..
  • super.key는 부모 클래스(StatefulWidget 또는 StatelessWidget)의 생성자로 자동 전달된다는 뜻입니다.
  • 즉, super.key는 사실상 Key? key를 선언하고, super 생성자로 넘기는 것과 동일합니다.

🔹 내부적으로 변환되는 형태

HomeScreen({Key? key}) : super(key: key);

2️⃣ HomeScreen({Key? key}) : super(key: key);

✅ 설명

  • 이 코드는 전통적인 방식으로 Key를 직접 선언한 뒤, super.key로 전달하는 방식이에요.
  • key를 명시적으로 선언해서, 더 명확한 코드를 작성할 수 있어요.
  • 그러나 Dart 3.0 이후부터는 super.key가 더 선호되는 방식이에요.

📌 정리

코드차이점

HomeScreen({super.key}); 간결한 최신 문법 (super shorthand 사용)
HomeScreen({Key? key}) : super(key: key); 전통적인 방식, key를 직접 선언 후 전달

 

🛠 어떤 걸 써야 할까?


Dart 3.0 이후에는 super.key가 더 간결하고 추천되는 방식이에요!
✅ 하지만, 이전 버전과 호환성을 고려해야 한다면 Key? key를 명시적으로 선언하는 것도 괜찮아요.

 

🚀 결론: 특별한 이유가 없다면 super.key를 사용하는 것이 더 깔끔하고 현대적인 코드 스타일이에요! 

 

구독!! 공감과 댓글,

광고 클릭은 저에게 큰 힘이 됩니다.

 

Starting Google Play App Distribution! "Tester Share" for Recruiting 20 Testers for a Closed Test.

 

Tester Share [테스터쉐어] - Google Play 앱

Tester Share로 Google Play 앱 등록을 단순화하세요.

play.google.com

반응형