• Blazor 生命周期


    执行周期

    1. SetParametersAsync

    2. OnInitializedAsync(调用两次) 和 OnInitialized;

    3. OnParametersSetAsync 或 OnParametersSet;

    4. OnAfterRenderAsync 和 OnAfterRender;

    5. 每次组件呈现都会调用ShouldRender;

     
     

    各周期解析

    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()
    {
        ...
    }
  • 相关阅读:
    Dubbo (开源分布式服务框架)
    Springboot+Jpa的使用
    springboot(十二):springboot如何测试打包部署
    Java NIO:IO与NIO的区别
    eclipse下搭建shell脚本编辑器--安装开发shell的eclipse插件shelled
    spring boot
    【微服务架构】SpringCloud组件和概念介绍
    java正则表达式
    java的反射机制原理
    nginx代理服务器
  • 原文地址:https://www.cnblogs.com/ysmc/p/16126424.html
Copyright © 2020-2023  润新知