ASP.NET Core Blazor组件基础如何快速入门?

摘要:大家好,我是码农刚子。上一章介绍了Blazor的简介,开发工具及环境,基本语法和一些示例。接下来我们继续了解Blazor 组件相关的基础知识,希望对你有所帮助。 1、组件生命周期 1.简介 Blazor的生命周期与React组件的生命周期类
大家好,我是码农刚子。上一章介绍了Blazor的简介,开发工具及环境,基本语法和一些示例。接下来我们继续了解Blazor 组件相关的基础知识,希望对你有所帮助。 1、组件生命周期 1.简介 Blazor的生命周期与React组件的生命周期类似,也分为三个阶段:初始化阶段、运行中阶段和销毁阶段,其相关方法有10个,包括设置参数前、初始化、设置参数之后、组件渲染后以及组件的销毁,但是这些方法有些是重复的,只不过是同步与异步的区别。 2.图解 首先将结果图呈现,代码位于第3部分: Blazor生命周期方法主要包括: 1 设置参数前 SetParametersAsync 2 初始化 OnInitialized/OnInitializedAsync 3 设置参数后 OnParametersSet/OnParametersSetAsync 4 组件渲染呈现后 OnAfterRender/OnAfterRenderAsync 5 判断是否渲染组件 ShouldRender 6 组件删除前 Dispose 7 通知组件渲染 StateHasChanged 在所有生命周期函数中,有以下需要注意的点: (1)前5种方法的声明都是virtual,除SetParametersAsync为public外,其他的都是protected。 (2)OnAfterRender/OnAfterRenderAsync方法有一个bool类型的形参firstRender,用于指示是否是第一次渲染(即组件初始化时的渲染)。 (3)同步方法总是先于异步方法执行。 (4)Dispose函数需要通过使用@implements指令实现IDisposable接口来实现。 (5)StateHasChanged无法被重写,可以被显示调用,以便强制实现组件刷新(如果ShouldRender返回true,并且Blazor认为需要刷新);当组件状态更改时不必显示调用此函数,也可导致组件的重新渲染(如果ShouldRender返回true),因为其已经在ComponentBase内部的处理过程(第一次初始化设置参数时、设置参数后和DOM事件处理等)中被调用。 3.代码示例 设置参数时 (SetParametersAsync 设置由组件的父组件在呈现树或路由参数中提供的参数。 每次调用 ParameterView 时,方法的 参数都包含该组件的SetParametersAsync值集。 通过重写 SetParametersAsync 方法,C#代码可以直接与 ParameterView 参数交互。 @page "/set-params-async/{Param?}" <PageTitle>Set Parameters Async</PageTitle> <h1>Set Parameters Async Example</h1> <p>@message</p> @code { private string message = "Not set"; [Parameter] public string? Param { get; set; } public override async Task SetParametersAsync(ParameterView parameters) { if (parameters.TryGetValue<string>(nameof(Param), out var value)) { if (value is null) { message = "The value of 'Param' is null."; } else { message = $"The value of 'Param' is {value}."; } } await base.SetParametersAsync(parameters); } } 组件初始化 (OnInitialized 和 OnInitializedAsync 专门用于在组件实例的整个生命周期内初始化组件。
阅读全文