چرا دورآموز؟
زمان آموزش را با استاد خود هماهنگ کنید و در تایم مورد نظر خود ، جلسات را تشکیل دهید
DynamicComponent در Blazor: راهنمای کامل استفاده از کامپوننتهای پویا
با قابلیت قدرتمند DynamicComponent در Blazor آشنا شوید. نحوه نمایش پویای کامپوننتها، مدیریت پارامترها و بهترین روشها برای توسعه برنامههای ماژولار و انعطافپذیر را در دورآموز بیاموزید.
در دنیای توسعه برنامههای وب مدرن با Blazor، یکی از چالشبرانگیزترین سناریوها، نمایش کامپوننتها به صورت پویا و در زمان اجرا (Runtime) است. آیا تا به حال خواستهاید بخشهای مختلفی از اپلیکیشن شما بر اساس دادههای دریافتی از سرور یا اقدامات کاربر، کامپوننتهای مختلفی را نمایش دهند؟ اینجاست که DynamicComponent در Blazor به عنوان یک قهرمان قدرتمند وارد عمل میشود.
در این مقاله از دورآموز، به طور کامل با DynamicComponent آشنا شده و یاد میگیرید چگونه از آن برای ایجاد اپلیکیشنهای ماژولار، انعطافپذیر و پویا استفاده کنید.
آموزش آنلاین برنامه نویسی بلیزور از 0 تا 100 به همراه ساخت یک CMS پنل کاربری در مدرسه آنلاین دورآموز
DynamicComponent چیست؟
DynamicComponent یک کامپوننت داخلی در Blazor است (از .NET 6 به بعد) که به شما امکان میدهد یک کامپوننت را بر اساس نوع (Type) آن به صورت پویا رندر کنید. این کار دیگر نیازی به استفاده از دستورات شرطی پیچیده (if/else یا switch) برای هر کامپوننت احتمالی ندارد.
مقایسه اجمالی:
روش قدیمی: یک switch statement بزرگ که دهها کامپوننت مختلف را چک میکند.
روش مدرن با Blazor: استفاده ساده و تمیز از <DynamicComponent>.
یک مثال عملی از DynamicComponent در Blazor
فرض کنید در حال ساخت یک پنل مدیریت هستید که بسته به نوع ویجت انتخاب شده توسط کاربر (مثلاً نمودار، جدول آمار، لیست آخرین کاربران)، یک کامپوننت متفاوت نمایش داده شود.
// Widgets/ChartWidget.razor
<h3>ویجت نمودار</h3>
<p>این یک نمودار زیبا است.</p>
// Widgets/TableWidget.razor
<h3>ویجت جدول</h3>
<p>این جدولی از دادهها است.</p>
// Widgets/UserListWidget.razor
<h3>لیست کاربران</h3>
<ul>
<li>کاربر ۱</li>
<li>کاربر ۲</li>
</ul>
کامپوننت والد با قابلیت پویا:
در کامپوننت اصلی (Parent)، از DynamicComponent برای نمایش پویا استفاده میکنیم
// DynamicDashboard.razor
@page "/dashboard"
<h2>داشبورد پویا</h2>
<select @onchange="OnWidgetChanged">
<option value="ChartWidget">نمودار</option>
<option value="TableWidget">جدول</option>
<option value="UserListWidget">لیست کاربران</option>
</select>
<div class="mt-3">
<DynamicComponent Type="SelectedWidgetType" />
</div>
@code {
private Type? SelectedWidgetType { get; set; }
// یک دیکشنری برای مپ کردن نام ویجت به تایپ آن
private readonly Dictionary<string, Type> _widgetTypes = new()
{
{ "ChartWidget", typeof(ChartWidget) },
{ "TableWidget", typeof(TableWidget) },
{ "UserListWidget", typeof(UserListWidget) }
};
private void OnWidgetChanged(ChangeEventArgs e)
{
var selectedWidgetName = e.Value?.ToString();
if (selectedWidgetName != null && _widgetTypes.ContainsKey(selectedWidgetName))
{
SelectedWidgetType = _widgetTypes[selectedWidgetName];
}
else
{
SelectedWidgetType = null;
}
}
}
توضیح کد:
-
یک
Dropdownداریم که کاربر میتواند نوع ویجت را انتخاب کند. -
با هر تغییر، متد
OnWidgetChangedفراخوانی میشود. -
این متد، نام انتخابشده را به
Typeمربوطه مپ کرده و در پراپرتیSelectedWidgetTypeقرار میدهد. -
کامپوننت
<DynamicComponent>با اتصال به این پراپرتی، به طور خودکار کامپوننت مناسب را رندر میکند.
دورآموز مرجع تخصصی آموزش آنلاین برنامه نویسی با برگزاری دوره هایی از چندین کشور نظیر آلمان،انگلستان،مالزی،استرالیا،ایتالیا،کاناداو...
ارسال پارامتر به کامپوننت پویا
یکی از قدرتمندترین ویژگیهای DynamicComponent، قابلیت ارسال پارامترها به کامپوننت مقصد است. این کار را با استفاده از Parameters انجام میدهیم
// کامپوننت والد
<DynamicComponent Type="SelectedWidgetType" Parameters="WidgetParameters" />
@code {
// ...
// تعریف یک آبجکت برای پارامترها
private Dictionary<string, object> WidgetParameters { get; set; } = new();
protected override void OnInitialized()
{
// مقداردهی پارامترها
WidgetParameters = new Dictionary<string, object>
{
{ "Title", "آمار فروش ماهانه" },
{ "Data", salesDataList }
};
}
}
و در کامپوننت مقصد (مثلاً ChartWidget)، باید پارامترها را تعریف کنید:
// ChartWidget.razor
<h3>@Title</h3>
<p>در اینجا نمودار دادههای @Title نمایش داده میشود.</p>
@code {
[Parameter]
public string Title { get; set; } = "نمودار پیشفرض";
[Parameter]
public List<object>? Data { get; set; }
}
رامین اسلامی
مدیر وب سایت دورآموز ، تیم برنامه نویسی جی وب و امور مشترکین مخابرات . برنامه نویس و مدرس زبان های برنامه نویسی و گرافیک سازمان فنی و حرفه ای
به نام خدا
رامین اسلامی هستم ، مدیر وب سایت دورآموز ،مدیر پروژه تیم جی وب ، برنامه نویس هریس کامپیوتر شعبه کانادا و برنامه نویس و مدرس زبان های برنامه نویسی .
من یک توسعهدهنده نرمافزار و از علاقمندان فنآوریهای مایکروسافت هستم و دوست دارم روی آنها کار کنم. حوزه اصلی تمرکز من روی C#.Net، Asp.Net، Sqlserver، Entity Framework، MVC، Web API، Jquery و Maui می باشد
- ProductRaes@Gmail.com
- 09155143391
بیش از 7 سال سابقه در مدیریت پروژه سیستم طرح جامع امور مشترکین مخابرات استان خراسان رضوی ، 4 سال مدیریت تیم برنامه نویسی شبکه سبز ، 7 سال مدیر وبسایت دورآموز و 20 سال سابقه آموزش در آموزشگاه های مشهد و تهران را دارا می باشم.
یکی از زیباترین لحظات زندگیم ، آموزش هرآنچه فراگرفته ام و مشاهده پیشرفت شاگردانم می باشد.و باعث سرافراری و خرسندی من می باشد که تعداد زیادی از شاگردان قدیمیم همکاران و رقیبان کاری حال حاضر من می باشند.
سابقه برنامه نویسی من
بیش از 7 سال سابقه در مدیریت پروژه سیستم طرح جامع امور مشترکین مخابرات استان خراسان رضوی شامل بخش های :امورمشترکین , ام دی اف , سالن دستگاه , رئیس مرکز , واگذاری خطوط , آبونمان - مدیر پروژه تیم برنامه نویسی جی وب - سیستم pap مخابرات - سیستم اداره ترابری مخابرات - سیستم حسابداری پویا - ویندوز جادویی پویا - سیستم سهام شرکت تعاونی آتیه شرق - مدیریت فروش سوپرگوشت - سایت فروش آسان تست - ۱۰ مجموعه تست و آموزش تصویری آسان تست - خودآزمون حسابداری - خودآزمون دیپلم کامپیوتر - وبسایت آموزشگاه کامپیوتر پژوهش - وبسایت آزمون های بین المللی ICDL پاسارگاد - وب سایت فرش ستاره کویر یزد - سیستم حسابداری گل فروشی ایمانا - سایت رسمی شرکت پیمانکاری peykavan مالزی - انجمن داروخانه های خراسان - سیستم کنترل تولید شرکت پارس اورتوپد - فروشگاه اینترنتی قاصتک - سامانه فروش بلیط هواپیما مسترتیکو - پنل مدیریت (CMS) asp.net core - باربری حجت بار و …
سابقه تدریس من
بیش از ۲۰ سال تدرس زبان های برنامه نویسی و گرافیکی و بانک های اطلاعاتی , آموزش کارکنان شرکت گاز مشهد , آموزش کارکنان شرکت گاز سرخس , آموزش کارکنان اداره مخابرات , آموزش در اموزشگاه های معتبر خراسان رضوی نظیر پاسارگاد ، آراد ، پژوهش ، سنا ، کاسپین و … آموزشگاه رهرو - تهران
فعالیت های من
برگزاری دوره های تخصصی برنامه نویسی در دفتر تیم برنامه نویسی جی وب در شهر مشهد , مشاوره در طراحی بانک های اطلاعاتی , مشاوره و مدیریت پروژه های برنامه نویسی , برنامه نویسی برنامه های کاربردی , برنامه نویسی وب سایت , برنامه نویسی موبایل
-
productraes@gmail.com
-
09155143391
پرسش و پاسخ
نوشته های دیگر این نویسنده
چرا فراگیری سی شارپ می تواند بسیار مفید باشد
طور کلی ، یادگیری برنامه نویسی برای رایانه می تواند تا حد زیادی به بهبود توانایی حل مسئله کمک کند.اما دلایل دیگری نیز وجود دارد که خود را در معرض برنامه نویسی قرار دهید. بعضی از افراد آنقدر لذت می برند که به عنوان سرگرمی به آن علاقه دارند ، دقیقاً مانند هنر یا نوشتن
رامین اسلامی
2438
ارسال داده از Input به سرور توسط Ajax در Asp.net core
آموزش ارسال داده از Input به سرور توسط Ajax در Asp.net core. در این آموزش قصد داریم نحوه ارسال اطلاعات دریافتی از کاربر به سرور توسط ایجکس را بررسی کنیم. ما یک عدد دریافت و توسط ایجکس آن را در فرمت پول نمایش می دهیم . مثلا کاربر عدد 1234 را وارد می کنید و ما مقدار 1.234 ریال را نمایش می دهیم
رامین اسلامی
3174
افزودن فیلدهای سفارشی به Identity Core در Asp.net Core MVC
افزودن فیلدهای سفارشی به Identity Core در Asp.net Core MVC امروز در این مقاله نحوه اضافه کردن فیلد های سفارشی در فرم ثبت نام خود را با کمک Identity Core در ASP.NET Core توضیح می دهم. در پروژه ای که ایجاد نموده ایم و از قبل مجوز احراز هویت را درآن فعال نموده ایم پوشه ای به نام data ایجاد می گردد .
رامین اسلامی
2696
نحوه غیرفعال کردن Ctrl + U با استفاده از Javascript
می خواهیم رویداد Ctrl + U و Ctrl + C را غیرفعال کنیم. هدف اصلی از انجام این کار جلوگیری از بارگیری کاربران از هر تصویر یا کپی کردن مطالب از وب سایت به راحتی می باشد. یعنی با فشار دادن Ctrl + U برای مشاهده کد منبع صفحه با فشار دادن Ctrl + C برای کپی کردن مطالب به طور مستقیم از صفحه وب نتوانند استفاده نمایند