شرح صفوف ومحتوى الفقرة
درست سابقاً الفارق المعماري الجوهري بين التأثيرات ومعالجات الأحداث: فخطاف useEffect() يزامن البيانات لمجرد ظهور المكون على الشاشة، أما عمليات تعديل البيانات مثل إنشاء سجل بـ POST أو تحديثه بـ PUT أو حذفه بـ DELETE فتنطلق استجابةً لفعل صريح ومقصود من المستخدم عند إرسال نموذج أو نقر زر.
نفّذ جميع طلبات الكتابة والتعديل داخل دوال أحداث غير متزامنة مثل async function handleSubmit(e)، ولا تضعها داخل useEffect() أبداً حتى لا تتكرر عمليات الإرسال تلقائياً أثناء التطوير أو عند تغير حالة جانبية.