0%
StatelessWidget وStatefulWidget ودورة الحياة — الفصل 45

الفصل 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 للمشاركة في النقاش

تم نسخ الرابط!