تكرار السؤال: …
الإجابة المختصرة
State يمر عادةً بـinitState ثم didChangeDependencies وbuild، وقد يستقبل didUpdateWidget، ثم dispose عند الإزالة النهائية.
الشرح
ضع initialization مرة واحدة في initState، وتابع Inherited dependencies في didChangeDependencies، ونظّف controllers وlisteners في dispose. لا تنفذ side effects داخل build لأنها قد تتكرر.
أخطاء شائعة
- إنشاء subscription داخل build.
- نسيان dispose لـAnimationController أو StreamSubscription.