Bab 6. Memahami Perbedaan Stateless VS Stateful Widget– Flutter
Hampir di seluruh example code yang ada bertebaran di dunia Flutter sering sekali menggunakan Stateless dan Stateful untuk membuat suatu Widget. Namun apa sebenarnya perbedaan dari keduanya?
Sebelumnya kita harus memahami bahwa dalam membuat interface dengan Flutter, semua komponen yang kita pakai disebut dengan Widget.
Everything is Widget.
Stateless Widget
Merupakan widget yang di-build hanya dengan konfigurasi yang telah diinisiasi sejak awal. Jadi Stateless Widget adalah Widget yang tidak akan pernah berubah.
Misalnya Kita membuat aplikasi berisi Text dengan angka 10. Kemudian aplikasi kita tidak punya fungsi untuk merubah angka tersebut. Maka yang digunakan di sini adalah Stateless Widget.
Stateful Widget
Merupakan Widget yang dapat berubah dinamis. Jadi apapun Widget yang berubah, ya itu disebut dengan Stateful Widget.
Contohnya kita membuat sebuah aplikasi dimana jika setiap kita memencet tombol “+1”. Angka yang ada di tengah tampilan akan bertambah satu.
Fungsi setState() yang akan bertugas untuk memberitahu framework bahwa ada object yang berubah pada State, kemudian akan melakukan build ulang pada Widget tersebut.
setState() pada Stateless Widget
Lalu apakah bisa menggunakan fungsi setState() pada Stateless Widget? Jawabannya adalah Tidak. Akan muncul error seperti di bawah jika kita mencoba menggunakan fungsi tersebut pada StatelessWidget.
StatefulWidget pada Widget bawaan Flutter
Kita juga dapat menemukan Stateful Widget dipakai di widget-widget bawaan dari Flutter seperti TextField, Radio, Checkbox, dan sebagainya.
Ringkasan
Intinya, jika kita ingin tampilan berubah secara dinamis saat aplikasi berjalan, kita akan menggunakan Stateful Widget. Jika tidak, maka hanya perlu menggunakan Stateless Widget.
Lalu bagaimana dengan InheritedWidget dan Widget yang ada di Flutter? Widget apa itu? Saya akan mencoba membahasnya di lain waktu.