Action Design تصميم الإجراءات
آخر تحديث: 2026-11-03
Action Design تصميم الإجراءات
الإجراء كائن عادي يصف ما حدث: نوعه هو الهوية، وهو عادةً ثابت بأحرف كبيرة، وحمولته تحمل البيانات. ويحوّل تصميم الإجراءات الجيد المُقلِّل إلى شيء مقروء كدليل مفاتيح switch، ويجعل تدفّق الحالة قابلاً للتتبّع والإعادة في DevTools. ولأن الإجراءات بيانات عادية، فإنها تنجو من التسلسل، وهذا بالضبط ما يجعل التسجيل والتصحيح والسفر عبر الزمن ممكناً.
| المجموعة | الآثار الجانبية والأداء |
|---|---|
| النوع | نمط |
ℹ️ ملاحظة يحوّل المحرّر JSX إلى JavaScript ويعرض الواجهة الحقيقية داخل بيئة معزولة؛ تُركَّب المكوّنات تلقائياً دون استدعاء render يدوي.
📝 الصيغة
// { type: 'todo/added', payload: 'buy milk' }
const addTodo = text => ({ type: 'todo/added', payload: text })
const toggleTodo = id => ({ type: 'todo/toggled', payload: id })
dispatch(addTodo('buy milk')) // صانع الإجراء يبني الكائن
القيمة المرجعة:لا قيمة معادة؛ فهذه المدخلات تصف نمط برمجة لا دالة.
▶ مثال
المثال يعمل مباشرة: يُعرض تلقائياً عند التوسيع وتظهر التعديلات فوراً.
الناتج:
اكتب نصاً واضغط «Add» لإنشاء مهمة؛ والضغط على عنصر يبدّل حالة إنجازه (مع خط يمرّ فوقه) — وكل تغيير يقوده أحد الإجراءين: added و toggled.
💡 النقاط الأساسية
💡 نصيحة صانع الإجراء مثل addTodo(text) يجمع شكل الإجراء في مكان واحد، فلا يحتاج المستدعيون إلى تركيب الكائن يدوياً.
ℹ️ ملاحظة سمِّ النوع بعد المجال والفعل، مثل todo/added؛ فيُقرأ جيداً في DevTools ويصبح التصفية بالبادئة سهلة.
⚠️ تحذير لا تضع في الإجراء سوى بيانات قابلة للتسلسل (الحمولة)، ولا تضع دالة استجابة ولا نسخة مكوّن أبداً.
🏷️ المزيد من الآثار والأداء
💡 حالات ذات صلة
المزيد من الحالات قريباً.
📚 دروس ذات صلة
❓ الأسئلة الشائعة
س هل صانعو الإجراءات إلزاميون؟
ج لا، فإرسال كائن مباشرة يعمل أيضاً؛ لكن مع تعدّد الإجراءات أو تعقّد الشكل يبقي الصانع البنية متسقة ويمنع الأخطاء الإملائية.
س هل يمكن أن تحمل الحمولة دالة؟
ج ينبغي ألا تفعل. فالإجراء وصف بيانات خالص، والدوال تكسر قابلية التسلسل وإمكانية إعادة تشغيل الحالة.
س هل يجب تعريف أنواع الإجراءات في مكان واحد؟
ج في مشروع صغير يمكنك تصدير الثوابت من أعلى ملف المُقلِّل؛ وفي مشروع معياري عرّفها بجوار مجالها وبادئة مميّزة لتفادي التصادم.