代码改变世界
[登录 · 注册]
  • Blazor 生命周期
  • 组件初始化方法

    同步操作

    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;
    }
    
  • 上一篇:vueaplayeryer
    下一篇:移动端rem适配
  • 【推广】 阿里云小站-上云优惠聚集地(新老客户同享)更有每天限时秒杀!
    【推广】 云服务器低至0.95折 1核2G ECS云服务器8.1元/月
    【推广】 阿里云老用户升级四重礼遇享6.5折限时折扣!
  • 原文:https://www.cnblogs.com/ouyangkai/p/13826802.html
走看看 - 开发者的网上家园