Skip to content

Lifecycle of Components

Lifecycle Methods

Blazor provides several lifecycle methods to control component logic:

Initialization

  • OnInitialized() - Runs once when the component is initialized
  • OnInitializedAsync() - Async version for initialization with async operations

Parameter Updates

  • OnParametersSet() - Runs every time parameters change
  • OnParametersSetAsync() - Async version for parameter updates with async operations

Rendering

  • OnAfterRender(bool firstRender) - Runs after the component has been rendered
  • OnAfterRenderAsync(bool firstRender) - Async version for post-render operations

Cleanup

  • IDisposable.Dispose() - Runs when the component is removed to cleanup resources
razor
@implements IDisposable

@code {
    protected override void OnInitialized()
    {
        Console.WriteLine("Component initialized");
    }

    protected override async Task OnInitializedAsync()
    {
        await LoadDataAsync();
    }

    protected override void OnParametersSet()
    {
        Console.WriteLine("Parameters have been set");
    }

    protected override async Task OnParametersSetAsync()
    {
        await UpdateDataAsync();
    }

    protected override void OnAfterRender(bool firstRender)
    {
        if (firstRender)
        {
            Console.WriteLine("First render complete");
        }
    }

    protected override async Task OnAfterRenderAsync(bool firstRender)
    {
        if (firstRender)
        {
            await InitializeJsAsync();
        }
    }

    public void Dispose()
    {
        // Cleanup resources
        Console.WriteLine("Component is being disposed");
    }
}