Apa Itu super.key
?
const MyWidget({super.key});
Artinya:
-
Kamu mewariskan
key
dari constructor ke kelas induk, yaituStatelessWidget
atauStatefulWidget
.
Kenapa key
Itu Penting?
Flutter menggunakan widget tree (pohon widget) untuk menentukan apa yang perlu dibangun ulang saat UI berubah. Key
digunakan untuk:
-
Membedakan instance widget meskipun punya data yang sama
-
Menghindari rebuild yang tidak perlu
-
Melacak posisi widget saat list diubah, disisipkan, atau dihapus
Peran super.key
Kamu menulis:
super.key digunakan untuk mem-passing Key ke parent class (StatelessWidget) agar Flutter tahu apakah widget ini harus dibangun ulang.
Itu betul! Tapi untuk lebih jelas:
Contoh:
class MyWidget extends StatelessWidget {
const MyWidget({super.key});
}
Sama dengan:
class MyWidget extends StatelessWidget {
const MyWidget({Key? key}) : super(key: key);
}
Jadi super.key
adalah cara singkat untuk menulis super(key: key)
, dan itu mengoper key
ke StatelessWidget
.
Contoh Praktis Kenapa Penting
ListView(
children: [
TodoItem(title: 'Beli telur', key: ValueKey('telur')),
TodoItem(title: 'Beli roti', key: ValueKey('roti')),
],
);
Jika kamu swap posisi item, Flutter tahu bahwa "Beli telur" masih sama karena key
-nya tetap. Tanpa key
, dia akan rebuild ulang dua-duanya.
Hal | Penjelasan singkat |
---|---|
key |
Digunakan Flutter untuk membedakan/melacak widget |
super.key |
Mengirim key ke parent (StatelessWidget / StatefulWidget ) |
Tanpa key |
Bisa menyebabkan rebuild yang tidak efisien |
super.key vs super(key: key) |
Sama, tapi super.key lebih ringkas (fitur Dart modern) |
No comments:
Post a Comment