
یادگیری سی شارپ از مفاهیم پایه تا پروژه محور: شیگرایی، کار با SQL و LINQ، ORMها (Entity Framework)، ساخت پروژه مدیریت رستوران با گزارشات حرفهای و امکانات کامل!
مشاهده بیشتر
یادگیری MVC Core از مبانی تا پیشرفته: شیگرایی، Routing، Entity Framework، امنیت، تست یونیت، Razor، Ajax، و پروژههای کاربردی! یک دوره کامل برای تسلط بر توسعه وب با ASP.NET Core. به صورت حضوری و آنلاین!
مشاهده بیشترمشخصات مقاله
|آموزش جامع Microsoft Blazor|متدهای طول عمر در فریم ورک Blazor|
متدهای چرخه عمر در فریم ورک Blazor
برنامه های کاربردی
فریمورک بلیزر
متدهای طول عمر همگام (synchronous) و نا همگام (asynchronous) متفاوتی را ارائه می کند که عبارتند از:
- OnInitialized
- OnInitializedAsync
- OnParametersSet
- OnParametersSetAsync
- OnAfterRender
- OnAfterRenderAsync
- ShouldRender
onInit و onInitAsync
نسخه همگام و ناهمگام متدها در فریمورک blazor هستند که در زمان مقداردهی اولیه به (Initialized) مولفه ، اجرا می شوند.
-
در ابتدا OnInitialized و سپس OnInitializedAsync فراخوانی می شود.
-
زمانی که مولفه به طور کامل بارگذاری شده باشد، اجرا می شود.
-
می توانید از این متد برای بارگذاری (load) داده ها از خدمات استفاده کنید، زیرا هر کنترل در واسط کاربری پس از این متد بارگذاری می شود.
-
زمانی که مولفه آماده باشد و مقادیر را از والد در درخت رندر (render tree)، دریافت کرده باشد، اجرا می شود.
-
هر گونه عملیات نا همگام که به محض تکمیل، مولفه را ملزم به رندر مجدد می کند، باید در متد OnInitializedAsync قرار گیرد.
@ page "/" < h1>OnInit & OnInitAsync Demo< /h1> @ foreach (var item in EventType) { @ item < hr /> } @ functions{ List< string> EventType = new List< string>(); protected override void OnInitialized() { EventType.Add("OnInitialized is called"); } protected override async Task OnInitializedAsync() { EventType.Add("OnInitializedAsync is called"); await Task.Delay(1000); } }
OnParametersSet و OnParametersSetAsync
روش همگام و نا همگام تنظیم پارامتر، زمانی مورد استفاده قرار می گیرد که مولفه، پارامتر را از مولفه والد خود دریافت کرده باشد.
-
متدهای OnParametersSet و OnParametersSetAsync در زمانی که مولفه، ابتدا اولیه سازی (initialised) می شود، فراخوانی می شوند.
-
پس از اولیه سازی، هر بار که پارامترهای جدید یا به روز رسانی شده، از والد در درخت رندر، دریافت شود، OnParametersSet و OnParametersSetAsync فراخوانی می شوند.
@ page "/" < h1>OnParametersSet & OnParametersSetAsync Demo< /h1> @ foreach (var item in EventType) { @ item < hr /> } @ functions{ List< string> EventType = new List< string>(); protected override void OnParametersSet() { EventType.Add("OnParameterSet is called"); } protected override async Task OnParametersSetAsync() { EventType.Add("OnParametersSetAsync is called"); await Task.Delay(1000); } }
onAfterRender و onAfterRenderAsync
نسخه همگام و نا همگام متدهای برنامه کاربردی هستند که برای انجام مراحل اضافی مانند مقداردهی اولیه به سایر مولفه ها مورد استفاده قرار می گیرند:
-
متدهای OnAfterRender و OnAfterRenderAsync پس از هر بار رندر کردن مولفه، فراخوانی می شوند.
-
می توانید انتظار داشته باشید در نقطه ای که فراخوانی می شوند، تمامی ارجاعات عناصر و مولفه تجمیع شده باشند.
-
این به این معناست که اگر نیاز به انجام یک عملیات مانند پیوست یک شنونده رویداد(event listener) داشته باشید، نیازمند رندر کردن عناصر مولفه در DOM هستید.
-
از دیگر کاربردهای عالی متدهای طول عمر، اولیه سازی کتابخانه جاوا اسکریپت (JavaScript) است که برای عملیاتی شدن نیازمند این است که عناصر DOM در جای خود قرار گیرند.
@ page "/" < h1>OnInit & OnInitAsync Demo< /h1> @ foreach (var item in EventType) { @ item < hr /> } @ functions{ List< string> EventType = new List< string>(); protected override void OnAfterRender() { EventType.Add("OnAfterRender is called"); } protected override async Task OnAfterRenderAsync() { EventType.Add("OnAfterRenderAsync is called"); await Task.Delay(1000); } }
ShouldRender
این متد یک مقدار بولی (boolean) را باز می گرداند؛ به این صورت که اگر مقدار true را باز گرداند به معنی تازه سازی UI است، در غیر این صورت، تغییرات به UI فرستاده نمی شوند. متد ShouldRender فارغ از مقدار بازگشتی آن، همیشه رندر کردن اولیه را انجام می دهد.
@ page "/" < h1>ShouldRender Method Demo< /h1> @ foreach (var item in EventType){ @item < hr />} @ functions{ List< string> EventType = new List< string>(); protected override bool ShouldRender() { EventType.Add("ShouldRender is called"); return true; } }
StateHasChanged
این متد مولفه ای که وضعیت آن تغییر کرده باشد را مشخص می کند.
-
این متد پس از فراخوانی هر متد طول عمر، فراخوانی می شود.
-
همچنین، می تواند برای تحریک کردن رندر مجدد UI، به صورت دستی فراخوانی شود.
-
این متد برای تصمیم گیری جهت اعمال رندر مجدد UI ، به مقدار بازگشت داده شده توسط ShouldRender نگاه می کند.
-
اگرچه، این اتفاق تنها بعد از زمانی رخ می دهد که مولفه برای اولین بار رنده شده باشد.
@ page "/refresh-ui-manually" @ using System.Threading; < h1>@ Count< /h1> < button onclick=@ StartCountdown>Start Countdown< /button> @ functions { private int Count { get; set; } = 10; void StartCountdown() { var timer = new Timer(new TimerCallback(_ => { if (Count <= 0) return; Count--; // Note that the following line is necessary because otherwise // Blazor would not recognize the state change and not refresh the UI this.StateHasChanged(); }), null, 1000, 1000); } }