Blazor - الفرق بين Parameters و RenderFragment
🔹 الفرق بين Parameters و RenderFragment في Blazor
في Blazor، توجد طريقتان أساسيتان لتمرير المعلومات من مكوّن أب إلى مكوّن فرعي: Parameters لتمرير البيانات البسيطة، وRenderFragment لتمرير واجهة HTML ديناميكية.
---🎯 تشبيه بسيط لفهم الفرق
تخيل أنك في مطعم وتطلب وجبة:
- Parameter مثل أن تطلب "وجبة حارة مع جبنة زيادة" – أي بيانات.
- RenderFragment مثل أن تقول "سأجلب معي طبق خاص وأريد تقديمه في الوجبة" – أي محتوى HTML مخصص.
📊 مقارنة بين Parameters و RenderFragment
العنصر | Parameters | RenderFragment |
---|---|---|
الوظيفة | تمرير بيانات بسيطة (نص، رقم...) | تمرير واجهة HTML أو مكونات قابلة للتخصيص |
النوع | string, int, bool, DateTime | RenderFragment أو RenderFragment<T> |
الاستخدام | Message="تم الحفظ" |
@<p>هذا محتوى مخصص</p> |
التعريف داخل المكون | [Parameter] public string Message { get; set; } |
[Parameter] public RenderFragment? ChildContent { get; set; } |
الهدف | تخصيص السلوك أو البيانات | تخصيص شكل الواجهة الداخلية |
🧪 أمثلة توضيحية
✅ مثال باستخدام Parameter
<!-- AlertBox.razor -->
<div class="alert alert-info">
@Message
</div>
@code {
[Parameter] public string Message { get; set; } = "";
}
<!-- الاستخدام -->
<AlertBox Message="مرحبًا بك!" />
✅ مثال باستخدام RenderFragment
<!-- CustomCard.razor -->
<div class="card">
<div class="card-body">
@ChildContent
</div>
</div>
@code {
[Parameter] public RenderFragment? ChildContent { get; set; }
}
<!-- الاستخدام -->
<CustomCard>
<h4>عنوان مخصص</h4>
<p>هذا محتوى داخلي يتم تمريره كمكون</p>
</CustomCard>
---
💡 متى تستخدم كل واحد؟
- 🟦 استخدم Parameter عندما تحتاج تمرير قيمة بسيطة مثل نص أو رقم أو حالة.
- 🟨 استخدم RenderFragment عندما تحتاج تمرير HTML مخصص أو حتى مكونات أخرى.
✅ الخلاصة
كل من Parameter و RenderFragment له دوره الخاص: الأول لتخصيص البيانات، والثاني لتخصيص المحتوى. بفهم الفرق بينهما، يمكنك بناء مكونات Blazor أكثر مرونة وقابلية لإعادة الاستخدام.
تعليقات
إرسال تعليق