الفصل 45 — StatelessWidget وStatefulWidget ودورة الحياة
الجزء 1B — إنشاء تطبيقات Flutter · الفصل 45 من 62 · 7 ساعات
الفصل 45 — StatelessWidget وStatefulWidget ودورة الحياة
المستوى: مبتدئ / متوسط المدة المقدّرة: 7 ساعات المتطلبات المسبقة: الفصل 44 — الويدجت وشجرة الويدجت ما ستتمكن من فعله في نهاية الفصل: تحديد ما إذا كان يجب أن يكون الويدجت
StatelessWidgetأوStatefulWidget، وتخزين الحالة في صنفState، وتعديلها بشكل سليم باستخدامsetState()، وتهيئة الموارد وتحريرها في اللحظات المناسبة من دورة الحياة، ورفع الحالة إلى أب مشترك.
45.0 — أهداف الفصل
في نهاية هذا الفصل، ستكون قادرًا على:
- شرح ما هي «حالة» الواجهة؛
- التمييز بين ما يتغيّر في الواجهة وما لا يتغيّر؛
- تعريف
StatelessWidgetبدقة؛ - كتابة
StatelessWidgetمن الصفر؛ - شرح الدور الدقيق للدالة
build()؛ - شرح لماذا تكون جميع خصائص الويدجت عديم الحالة
final؛ - تمرير البيانات إلى ويدجت عبر مُنشئه (constructor)؛
- شرح لماذا يتكوّن
StatefulWidgetمن صنفين؛ - كتابة صنف
State<T>؛ - وضع متغيرات الحالة في المكان الصحيح؛
- استخدام
setState()بشكل صحيح؛ - وصف ما يفعله
setState()فعليًا داخل إطار العمل؛ - كتابة العدّاد، المثال الكلاسيكي في Flutter؛
- التعرّف على الخطأ الصامت الناتج عن تعديل الحالة خارج
setState()؛ - تقدير كلفة استدعاء
setState()غير الضروري؛ - الوصول إلى خصائص الويدجت من الحالة عبر
widget.propriete؛ - قراءة دورة الحياة الكاملة للصنف
Stateورسمها؛ - استخدام
createState()وinitState()وdidChangeDependencies()وbuild()وdidUpdateWidget()وdeactivate()وdispose()؛ - تحرير وحدة تحكم (controller) في
dispose()؛ - استخدام
mountedلتفادي استدعاءsetState()بعد إزالة الويدجت؛ - الاختيار بين الحالة المحلية والحالة المرفوعة؛
- ممارسة رفع الحالة (lifting state up)؛
- تمرير إجراء من الأعلى إلى الأسفل عبر
callback؛ - ذكر حدود هذا النهج ومعرفة ما سيضيفه الفصل 52؛
- تطبيق شجرة القرار «stateless أم stateful؟».
التعليقات
التعليقات مدعومة عبر GitHub Discussions
سجّل الدخول باستخدام GitHub للمشاركة في النقاش