دسته بندی ها
10:32 1399/12/20

چرخه LifeCycle در Razor Page ها در Blazor چگونه است ؟

مشخصات سوال کننده :
کاربر : pedram_khan     امتیاز کاربر : 277     رتبه کاربر : 6
دسته بندی : Blazor

به این سوال امتیاز بدهید    0
تعداد بازدید این سوال : 2880
پاسخ دهنده : saedbfd 15:14 1399/12/20

چرخه LifeCycle در Razor Page ها در Blazor چگونه است ؟

شما وقتی یک Razor Page رو نمایش می دید چندین LifeCycle به ترتیب اجرا میشه. مهم ترین LifeCycle ها در Razor Page ها در Blazor به ترتیب زیر هستن.

متد OnInitialized

خب اولین متدی که هنگام اجرای یک Razor Page در Blazor اجرا میشه متد OnInitialized هست. نوشتن این متد به صورت زیر هست.

@code { 
    protected override void OnInitialized()
    {
        Console.WriteLine("Section 1");
    }
}

 

متد OnParametersSet

دومین متدی که اتوماتیک با نمایش Razor Page ها فعال می شود OnParametersSet می باشد. شما هر گونه پارامتری در صفحه داشته باشید، یا از صفحات دیگر دریافت کنید در این متد مقداردهی می شود. نحوه استفاده به صورت زیر می باشد.

@code {
    protected override void OnParametersSet()
    {
        Console.WriteLine("Section 2");
    }
}

 

متد OnAfterRender

متد سومی که در نمایش یک Razor در Blazor اجرا می شود متد OnAfterRender می باشد. این متد بعد از OnInitialized و OnParametersSet اجرا می شود و محتویات صفحه را نمایش می دهد. نحوه استفاده به این صورت می باشد.

protected override void OnAfterRender(bool firstRender)
{
    Console.WriteLine("Section 3");
}

 

در مجموع به ترتیب میتوان کدها را به صورت زیر نوشت :

@code {

    protected override void OnInitialized()
    {
        Console.WriteLine("Section 1");
    }
    protected override void OnParametersSet()
    {
        Console.WriteLine("Section 2");
    }
    protected override void OnAfterRender(bool firstRender)
    {
        Console.WriteLine("Section 3");
    }
}

بنابراین به صورت کلی و به ترتیب موارد زیر را خواهیم داشت

 

@page "/lifecycle"

<h3>LifeCycle</h3>

@code {
    protected override void OnInitialized()
    {
        Console.WriteLine("Section 1");
    }
    protected override void OnParametersSet()
    {
        Console.WriteLine("Section 2");
    }
    protected override void OnAfterRender(bool firstRender)
    {
        Console.WriteLine("Section 3");
    }
}

 

ویرایش شده در دوشنبه 27 اسفند 1403 ساعت 17:05:56
به این پاسخ امتیاز بدهید    ‎−1
امتیاز: 1654 رتبه: 1
برای ارسال پاسخ لطفا وارد حساب کاربری خود شوید.   ورود