Default Props القيم الافتراضية للخصائص

آخر تحديث: 2026-11-03

Default Props القيم الافتراضية للخصائص

حين لا يمرّر المكوّن الأب خاصية ما تكون قيمتها undefined، وقد تظهر الواجهة فارغة أو يُلقى خطأ. وتمنح القيم الافتراضية عند التفكيك (أو عامل ??) للخصائص الاختيارية قيمة بديلة، فيظل المكوّن سلوكه معقولاً عند نقص خاصية وتبقى واجهته ودودة. ولا تدخل القيم الافتراضية حيز التنفيذ إلا حين تكون القيمة undefined، لذا تبقى القيم الزائفة مثل 0 أو النص الفارغ محترمة كما هي.

المجموعةالعرض والحالة
النوعنمط
منذ الإصدارأقدم إصدارات React

ℹ️ ملاحظة يحوّل المحرّر JSX إلى JavaScript ويعرض الواجهة الحقيقية داخل بيئة معزولة؛ تُركَّب المكوّنات تلقائياً دون استدعاء render يدوي.

📝 الصيغة

function Avatar({ name = 'Anonymous', size = 40 }) {
//                    ↑ القيمة الافتراضية عند التفكيك: تُطبَّق عندما لا تُمرَّر الخاصية
  ...
}

⚙️ المعاملات

destructuring defaultامنح الخاصية قيمة بديلة بـ = داخل تفكيك المعاملات؛ ولا تعمل إلا حين تكون القيمة undefined، لذا تُستخدم 0 و'' كما هما.

القيمة المرجعة:لا قيمة معادة — مجرد اصطلاح برمجي ونموذج ذهني.

▶ مثال

المثال يعمل مباشرة: يُعرض تلقائياً عند التوسيع وتظهر التعديلات فوراً.

الناتج:

ثلاثة صفوف من الصور الرمزية: الأول يظهر «Alice» بحجم كبير؛ والثاني يظهر «Bob» بلا خاصية size فيسقط على الحجم المتوسط الافتراضي؛ والثالث لا يمرّر شيئاً فيظهر الاسم الافتراضي «Anonymous user» مع صورة متوسطة.

💡 النقاط الأساسية

💡 نصيحة فضّل القيم الافتراضية عند التفكيك على defaultProps الساكنة المهجورة: الصيغة أكثر اختصاراً وألطف مع استنتاج الأنواع.
ℹ️ ملاحظة انتبه إلى ||، فهو يعتبر 0 و'' أيضاً «غير مُمرَّرة»؛ استخدم ?? حين تكون القيمة الاختيارية قد تكون زائفة عن قصد.
⚠️ تحذير لا تضع قيمة افتراضية لخاصية إلزامية: من الأفضل وسمها required في TypeScript أو إطلاق تحذير واضح أثناء التطوير.
المزيد من الحالات قريباً.

📚 دروس ذات صلة

❓ الأسئلة الشائعة

س هل ما زال بإمكاني استخدام defaultProps؟
ج إنها مهجورة على المكوّنات الدالية ولم تعد مدعومة منذ React 19؛ انتقل إلى قيمة افتراضية عند التفكيك في قائمة المعاملات، فالمعنى نفسه وأوضح في القراءة.
س كيف أضع قيمة افتراضية لخاصية؟
ج الشكل الأكثر شيوعاً هو القيمة الافتراضية عند التفكيك: function C({ size = 40 }); ويمكنك أيضاً كتابة const size = props.size ?? 40 داخل جسم الدالة.
س ما الفرق بين || و ?? في القيم الافتراضية؟
ج يعود || إلى القيمة الافتراضية عند 0 و'' وfalse أيضاً، بينما لا يعود ?? إلا عند null أو undefined. فضّل ?? للأرقام والنصوص الاختيارية.
Web-Tutorial.com

فريق Web-Tutorial التقني

منصة دروس برمجية يديرها عدة مطورين. كل درس يتم كتابته ومراجعته بواسطة مطورين متخصصين في المجال. نعمل على ضمان دقة وموثوقية المحتوى — إذا لاحظت أي مشكلة، فيرجى إخبارنا.

100%