This content originally appeared on DEV Community and was authored by Gülsen 🦋
StatefulWidget
ve StatelessWidget
arasındaki fark tam adındadır.
Bir StatefulWidget
kendi dahili durumunu (internal state) izler. StatelessWidget
, widget'ın ömrü boyunca değişen herhangi bir dahili duruma sahip değildir. StatelessWidget
yapılandırmasını veya hangi verileri görüntülediğini umursamaz. Durum bilgisi olmayan bir widget da değiştirilemez.
Uygulamanızda özel bir button widget'ı oluşturduğunuzu hayal edin. Belki de bir sonraki listede gösterildiği gibi her zaman Submit diyecektir.
class SubmitButton
extends StatelessWidget {
Widget build(context) {
return Button(
child: Text('Submit'),
);
}
}
Bu butonun bazı durumlarda Submit ve bazen de Update demesini istiyor olabilirsiniz. Buton sınıfını daha kullanışlı hale getirmek için, aşağıdaki listede gösterildiği gibi, Flutter'a buttonText'e göre oluşturmasını söyleyebilirsiniz.
class SubmitButton extends StatelessWidget {
final String buttonText;
SubmitButton(this.buttonText);
Widget build(context) {
return Button(
child: Text(buttonText);
);
}
}
Her iki durumda da, bu widget öğesi statiktir ve kendini güncelleyemediği için mantıktan yoksundur. Yapılandırması, parent widget'lara dayanır. Durum bilgisi olan bir widget öğesinin aksine (stateful widget - bunu yakında göreceğiz) nasıl yeniden oluşturulacağını bilmiyor.
Stateless widget aracınız için methodlarınız olabilir, ancak bir stateless widget öğesi, Flutter onu widget öğesi ağacından kaldırdığında tamamen yok edilir. Bu bölümün ilerleyen kısımlarında widget tree ve context hakkında daha fazla konuşacağız, ancak bir stateless widget'ın kaybetmek istemediğiniz verilerden sorumlu olmaması gerektiğini anlamak önemlidir.
Bir kez gitti mi, gitti. Once it’s gone, it’s gone. ✨
Reference: Flutter in Action chapter-3 77
This content originally appeared on DEV Community and was authored by Gülsen 🦋
Gülsen 🦋 | Sciencx (2022-03-22T22:55:04+00:00) Stateless widgets 💫 🌌 ✨. Retrieved from https://www.scien.cx/2022/03/22/stateless-widgets-%f0%9f%92%ab-%f0%9f%8c%8c-%e2%9c%a8/
Please log in to upload a file.
There are no updates yet.
Click the Upload button above to add an update.