实用技巧

关注公众号 jb51net

关闭
首页 > 网络编程 > ASP.NET > 实用技巧 > Blazor生命周期

Blazor组件的生命周期解析

作者:一事冇诚

这篇文章介绍了Blazor组件的生命周期,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

执行周期

各周期解析

SetParametersAsync

每次调用 SetParametersAsync 时,ParameterView 都包含整个参数值集。

SetParametersAsync 的默认实现使用 [Parameter] 或 [CascadingParameter] 特性(在 ParameterView 中具有对应的值)设置每个属性的值。 在 ParameterView 中没有对应值的参数保持不变。

如果未调用 base.SetParametersAync,则自定义代码可使用任何需要的方式解释传入的参数值。 例如,不要求将传入参数分配给类的属性。

如果设置有事件处理程序,处置时会将其解除挂接。 有关详细信息,请参阅使用 IDisposable 处置组件部分。

public override async Task SetParametersAsync(ParameterView parameters)
{
    await ...

    await base.SetParametersAsync(parameters);
}

OnInitializedAsync 和 OnInitialized

SetParametersAsync 中的组件在从其父组件接收初始参数后初始化,此时,将调用 OnInitializedAsync 和 OnInitialized。

在组件执行异步操作时使用 OnInitializedAsync,并应在操作完成后刷新。

对于同步操作,替代 OnInitialized:

预呈现其内容的 Blazor Server 应用调用 OnInitializedAsync 两次:

为了防止 OnInitializedAsync 中的开发人员代码运行两次,请参阅预呈现后的有状态重新连接部分。

在 Blazor Server 应用进行预呈现时,由于尚未建立与浏览器的连接,无法执行调用 JavaScript 等特定操作。 预呈现时,组件可能需要进行不同的呈现。 有关详细信息,请参阅检测应用何时预呈现部分。

如果设置有事件处理程序,处置时会将其解除挂接。

备注

应用参数和属性值时,异步操作必须在 OnParametersSetAsync 生命周期事件期间发生。

protected override void OnInitialized()
{
    ...
}

protected override async Task OnInitializedAsync()
{
    await ...
}

OnParametersSetAsync 或 OnParametersSet

在以下情况下调用:

在 OnInitializedAsync 或 OnInitialized 中初始化组件后。

当父组件重新呈现并提供以下内容时:

备注

应用参数和属性值时,异步操作必须在 OnParametersSetAsync 生命周期事件期间发生。

protected override async Task OnParametersSetAsync()
{
    await ...
}

protected override void OnParametersSet()
{
    ...
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

您可能感兴趣的文章:
阅读全文