Blazor组件的生命周期

本文详细介绍了Blazor组件的生命周期,包括SetParametersAsync、OnInitialized、OnInitializedAsync、OnParametersSet、OnParametersSetAsync、OnAfterRender、OnAfterRenderAsync等阶段,并探讨了每个阶段的特点和用途。特别提到了在不同阶段如何处理异步操作,以及在需要阻止UI刷新或更新UI状态时的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

组件,英文称之为Component,包括普通页面,布局页,用户控件等.

直接看官方文档, Blazor组件的生命周期按从前往后分为以下几个阶段:

  1. SetParametersAsync,接受到参数,初始化之前。
  2. OnInitialized,初始化之后。
  3. OnInitializedAsync,初始化之后(需要处理异步方法的时候用到)。
  4. OnParametersSet,设置完参数之后。
  5. OnParametersSetAsync,设置完参数之后(需要处理异步方法的时候用到)。
  6. OnAfterRender,组件呈现之后。
  7. OnAfterRenderAsync,组件呈现之后(需要处理异步方法的时候用到)。

对比之前的WebForm,这个显然已经算很少了,而且还分成了同步和异步两种操作。不过很奇怪的是为什么参数的处理要分别放在初始化的前后,直观理解的话,OnParametersSet和OnParametersSetAsync这两个事件是可以去掉的。当然框架肯定有她自己的考虑,对于笔者这个Blazor初学者来说肯定有考虑不到的地方。

所有的事件也可以在ComponentBase里面找到定义,这个也是所有组件的基类:

在这里插入图片描述

值得注意的是,这里面并没有Dispose方法,根据文档的介绍,需要单独使用@implements指令来声明。

@using System
@implements IDisposable
...
@code {
    public void Dispose()
    {
        ...
    }
}

SetParametersAsync

最早的事件,支持异步操作,她的定义如下:

public virtual Task SetParametersAsync(ParameterView parameters);

ParameterView包含了所有的参数,主要有URL里面的参数以及父组件通过属性传递过来的参数,可以通过foreach遍历里面的值,也可以通过GetValueOrDefault方法根据参数名取值,比如你可以这样:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值