Catatan Programmer

apa itu super.key dan kenapa penting

 

Apa Itu super.key?

const MyWidget({super.key});

Artinya:

  • Kamu mewariskan key dari constructor ke kelas induk, yaitu StatelessWidget atau StatefulWidget.


 

Kenapa key Itu Penting?

Flutter menggunakan widget tree (pohon widget) untuk menentukan apa yang perlu dibangun ulang saat UI berubah. Key digunakan untuk:

  1. Membedakan instance widget meskipun punya data yang sama

  2. Menghindari rebuild yang tidak perlu

  3. 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

About