ما هي life cycle في flutter

السلام عليكم.

ما هي life cycle في flutter

وشكرا

يرجى الدخول لحسابك أو تسجيل حساب لتستطيع إضافة تعليق
حساب جديد دخول

التعليقات

Mustafa_Suleiman أضف ردا

دورة حياة التطبيق (Lifecycle) في Flutter تعني سلسلة من الحالات والأحداث التي تحدث أثناء تشغيل التطبيق، وتلك الحالات مفيدة لإدارة حياة عناصر وحالات معينة في التطبيق الخاص بك، مثل الشاشات والصفحات والمكونات.

ويتمثل هدف فهم دورة حياة التطبيق في تسهيل إدارة حالة التطبيق وتنفيذ الإجراءات المناسبة في كل حالة، والمراحل هي:

1- StatelessWidget

  • create: تمثل إنشاء مكون StatelessWidget، وهي حالة بداية للمكون.
  • build: يتم استدعاؤها لبناء وإعادة بناء واجهة المستخدم عندما تتغير البيانات المرتبطة بالمكون.

مثال:

class MyWidget extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Container(
      child: Text('Hello, World!'),
    );
  }
}

2- StatefulWidget

  • create: تمثل إنشاء مكون StatefulWidget وتهيئة الحالة الخاصة به.
  • initState: يتم استدعاؤها مرة واحدة عند تكوين الحالة.
  • build: يتم استدعاؤها لبناء وإعادة بناء واجهة المستخدم عندما تتغير البيانات المرتبطة بالمكون.
  • dispose: تستخدم لتنظيف الموارد عند نهاية دورة حياة المكون.

مثال:

class MyStatefulWidget extends StatefulWidget {
  @override
  _MyStatefulWidgetState createState() => _MyStatefulWidgetState();
}


class _MyStatefulWidgetState extends State<MyStatefulWidget> {
  @override
  void initState() {
    super.initState();
    // قم بتنفيذ الإعدادات الأولية هنا
  }


  @override
  Widget build(BuildContext context) {
    return Container(
      child: Text('Hello, World!'),
    );
  }


  @override
  void dispose() {
    // قم بتنظيف الموارد هنا عند نهاية دورة الحياة
    super.dispose();
  }
}

بعض الأمثلة على استخدام دورة حياة التطبيق Lifecycle:

  • إعداد حالة العنصر، مثل تحميل البيانات أو تهيئة المتغيرات.
  • إعادة تهيئة العنصر إذا لزم الأمر، مثل عند تغيير تبعيات العنصر أو عند إعادة بناء الشاشة.
  • تحرير الموارد المستخدمة من قبل العنصر، مثل ذاكرة التخزين المؤقت أو الخطوط.

دورة حياة تطبيق Flutter هي العرض لكيفية تغيير التطبيق لحالته. تساعد في فهم الفكرة التي تقود التقدم السلس لتطبيقاتنا. كل شيء في Flutter هو عنصر واجهة مستخدم (Widget)، لذلك قبل التفكير في دورة الحياة، يجب أن نفكر في عناصر واجهة المستخدم في Flutter.

لدى Flutter نوعان رئيسيان من عناصر واجهة المستخدم:

  • عناصر واجهة المستخدم الثابتة (Stateless Widgets): وهي عناصر واجهة المستخدم التي لا تحتاج إلى التعامل مع الحالة لأنها لا تتغير بشكل كبير في وقت التشغيل. تصبح دائمة مثل المتغيرات والأزرار والرموز وما إلى ذلك، أو أي تعبير لا يمكن تغييره في التطبيق لاسترداد المعلومات. ترجع عنصر واجهة مستخدم عن طريق الكتابة فوق طريقة البناء. نستخدمه عندما تعتمد واجهة المستخدم على البيانات الموجودة داخل العنصر الفعلي.
  • عناصر واجهة المستخدم ذات الحالة (Stateful Widgets): وهي عناصر واجهة المستخدم التي تحمل الحالة ويمكن أن تتغير واجهة المستخدم المعروضة بشكل تدريجي في وقت التشغيل. إنه عنصر واجهة مستخدم قابل للتغيير، لذلك يتم استدعاؤه عدة مرات خلال دورة حياته.

دورة حياة التطبيق تعتمد على الحالة وكيف تتغير. تمتلك عناصر واجهة المستخدم Stateful Widgets حالة، لذلك يمكننا توضيح دورة حياة Flutter اعتمادًا عليها. مراحل دورة الحياة:

  • createState() يتم إنشاء حالة عنصر واجهة المستخدم في هذه المرحلة.
  • initState() يتم استدعاء هذه الطريقة بعد إنشاء حالة عنصر واجهة المستخدم مباشرةً.
  • didChangeDependencies() يتم استدعاء هذه الطريقة مباشرة بعد initState(). يتم استدعائها أيضًا عند تغير تبعيات عنصر واجهة المستخدم.
  • build() يتم استدعاء هذه الطريقة لبناء عنصر واجهة المستخدم.
  • didUpdateWidget() يتم استدعاء هذه الطريقة بعد تحديث عنصر واجهة المستخدم الأب.
  • setState() يتم استدعاء هذه الطريقة لتغيير حالة عنصر واجهة المستخدم.
  • deactivate() يتم استدعاء هذه الطريقة عندما يتم إيقاف عنصر واجهة المستخدم مؤقتًا.
  • dispose() يتم استدعاء هذه الطريقة عند التخلص من عنصر واجهة المستخدم.