위젯 만들 때 마다 계속 나오는 @override와 super.key는 뭐지?

2024. 8. 26. 13:52·Flutter/Flutter

기본 문법을 배웠지만 const MyApp({super.key}); <이게 무슨 형태인지 잘 짐작이 안간다

 


 1. @override
- 명시적 재정의: 부모 클래스에 있는 메서드를 자식 클래스에서 재정의하고 있다는 것을 명확하게 보여준다. 사실 굳이 쓰지 않아도 되는 어노테이션인거다! 

 

import 'package:flutter/material.dart';

void main() {
  runApp(const MyApp());
}

class MyApp extends StatelessWidget {
  const MyApp();

  // This widget is the root of your application.
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: LandingPage(),
    );
  }
}


ex) 위 코드 `MyApp` 클래스는 `StatelessWidget` 클래스를 상속받고 있으며, `build` 메서드를 재정의하고 있다. 이때`@override를 사용하여 부모 클래스의 메서드를 재정의하고 있음을 명시한다.

2. const MyApp({super.key}) 
  - Flutter에서 stateless 위젯을 쓸때는 const로 생성자를 만들어준다.
  - super.key 는 부모 클래스(StatelessWidget 또는 StatefulWidget)의 생성자에 key를 전달하는 역할을 한다.

여기서 key란? 🔑
  - key는 Flutter에서 위젯의 고유 식별자 역할을 하며, 위젯 트리에서 동일한 타입의 위젯을 구분하는 데 사용됩니다. super.key를 사용하면 부모 클래스에 key를 전달하여 이 식별 기능을 활용할 수 있습니다.

 

{}는 생성자 만들 때 없어도 되는 거 아닌가? 해서, 없애보았다.

없어도 문제가 없었다. 대신 동일한 위젯이 있으면 구분하기 어렵겠지

 

✏️ 정리

@override는 부모 클래스의 메서드를 재정의하고 있음을 명확히 하기 위해 사용됨
const MyApp({super.key})는 상수 객체를 생성하고, 부모 클래스의 생성자에 key를 전달하여 위젯 트리에서 이 위젯을 고유하게 식별할 수 있도록 합니다.

'Flutter > Flutter' 카테고리의 다른 글

1. 앱에 어울리는 애니메이션 구현하기 <Lottie편>  (1) 2024.09.16
mainColor를 const로 고정해주고 싶었을 뿐인데  (0) 2024.08.30
왜 자꾸 const를 쓰라고 하는거지?  (0) 2024.08.26
1. Postman 사용해보기  (0) 2024.08.21
개발자의 스레드 관리는 비효율적 in 플러터  (2) 2024.08.21
'Flutter/Flutter' 카테고리의 다른 글
  • 1. 앱에 어울리는 애니메이션 구현하기 <Lottie편>
  • mainColor를 const로 고정해주고 싶었을 뿐인데
  • 왜 자꾸 const를 쓰라고 하는거지?
  • 1. Postman 사용해보기
복복씨
복복씨
  • 복복씨
    정리노트
    복복씨
  • 전체
    오늘
    어제
    • 분류 전체보기 (113)
      • 개발새발자 (20)
        • 의 삶 (6)
        • 의 회고 (9)
        • 의 낙서장 (5)
        • 영어 (0)
      • Flutter (4)
        • 새싹 (5)
        • Dart (8)
        • Flutter (13)
        • iOS 에서 Flutter 로 전환하며 (2)
        • 챗지피티랑놀.기 (2)
        • 하루 한 입 플러터 (1)
      • CS (7)
        • 짤막지식 (6)
      • IOS (6)
        • Swift (0)
        • UIKit (1)
        • SwitUI (4)
      • 머신러닝-딥러닝 (28)
        • 논문리뷰 (3)
        • study (16)
        • Kaggle (9)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    swiftui 플러터
    왜 글쓸 때랑 글쓴 후랑 코드 색감이 다르게 나오지?
    코드 결합도
    flutter 애니메이션
    initState()
    핫 리로드
    FLUTTER
    새싹 플러터
    새싹 용산
    flutter lottie
    플러터 di
    플러터 새싹
    시그널링데이터
    새싹
    dart
    iOS 개발자
    플러터
    Flutter Lifecycle
    정말 최고의 유튜바
    테킷 앱스쿨
    getit
    용산캠
    깊은참조
    한주 회고
    사그널링서버
    IOS
    부트캠프 떠돌이
    멋쟁이 사자처럼
    테킷
    부트캠프
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
복복씨
위젯 만들 때 마다 계속 나오는 @override와 super.key는 뭐지?
상단으로

티스토리툴바