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 أكثر مرونة وقابلية لإعادة الاستخدام.

تعليقات

المشاركات الشائعة من هذه المدونة

C# - Arrays

Entity Framework - ما هو ORM؟ ونبذة عن Dapper وNHibernate

Entity Framework - مقدمة عن Entity Framework