Apa Itu super.key?
const MyWidget({super.key});
Artinya:
-
Kamu mewariskan
keydari constructor ke kelas induk, yaituStatelessWidgetatauStatefulWidget.
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