组件初始化方法

同步操作

protected override void OnInitialized()
{
    ...
}

异步操作

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

设置参数之前

SetParametersAsync 在呈现树中设置组件的父组件提供的参数:

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

    await base.SetParametersAsync(parameters);
}

设置参数之后

OnParametersSetAsyncOnParametersSet 在以下情况下调用:

  • 当组件被初始化并从其父组件收到其第一组参数时。
  • 当父组件重新呈现并提供以下内容时:
    • 至少一个参数已更改的唯一已知基元不可变类型。
    • 任何复杂类型的参数。 框架无法知道复杂类型参数的值是否在内部发生了改变,因此,它将参数集视为已更改。
protected override async Task OnParametersSetAsync()
{
    await ...
}

备注

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

protected override void OnParametersSet()
{
    ...
}

组件呈现之后

OnAfterRenderAsyncOnAfterRender 在组件完成呈现后调用。 此时会填充元素和组件引用。 在此阶段中,可使用呈现的内容执行其他初始化步骤,例如激活对呈现的 DOM 元素进行操作的第三方 JavaScript 库。

OnAfterRenderAsyncOnAfterRenderfirstRender 参数:

  • 在第一次呈现组件实例时设置为 true
  • 可用于确保初始化操作仅执行一次。
protected override async Task OnAfterRenderAsync(bool firstRender)
{
    if (firstRender)
    {
        await ...
    }
}

备注

呈现后立即进行的异步操作必须在 OnAfterRenderAsync 生命周期事件期间发生。

即使从 OnAfterRenderAsync 返回 Task,框架也不会在任务完成后为组件再安排一个呈现循环。 这是为了避免无限呈现循环。 它与其他生命周期方法不同,后者在返回的任务完成后会再安排呈现循环。

protected override void OnAfterRender(bool firstRender)
{
    if (firstRender)
    {
        ...
    }
}

禁止 UI 刷新

替代 ShouldRender 以禁止 UI 刷新。 如果实现返回 true,则刷新 UI:

protected override bool ShouldRender()
{
    var renderUI = true;

    return renderUI;
}

相关文章:

  • 2021-09-14
  • 2021-08-25
  • 2022-02-21
  • 2021-09-15
  • 2021-12-12
  • 2021-11-13
  • 2022-12-23
  • 2021-05-18
猜你喜欢
  • 2022-12-23
  • 2021-11-18
  • 2022-12-23
  • 2022-12-23
  • 2021-09-03
  • 2021-10-17
相关资源
相似解决方案