通八洲科技

Blazor 数据加载时显示 Loading 提示的方法

日期:2025-12-19 00:00 / 作者:月夜之吻
Blazor中实现Loading提示需用bool isLoading状态控制UI显隐,加载前设true并调用StateHasChanged(),异常或完成后设false;可封装为LoadingWrapper组件自动管理任务状态;首次加载应在OnInitializedAsync中手动控制开关时机,并结合CancellationToken防重复提交。

在 Blazor 中实现数据加载时显示 Loading 提示,核心是利用组件状态(bool isLoading)控制 UI 的显隐,并配合异步操作的生命周期合理设置开关时机。

使用布尔状态 + 条件渲染

最常用也最直接的方式:定义一个 isLoading 字段,在调用异步方法前后手动更新它,再用 @if (isLoading) { ... } 控制提示内容。

封装成可复用的 Loading 包裹组件

把 Loading 逻辑抽离成独立组件(如 LoadingWrapper.razor),通过参数接收任务和子内容,自动管理状态。

结合 OnInitializedAsync 生命周期处理首次加载

页面首次加载数据通常放在 OnInitializedAsync,这里要特别注意:不能只靠 await LoadDataAsync(),否则 Loading 状态可能来不及刷新。

进阶:用 CancellationToken 支持取消与防重复提交

当用户快速多次点击加载按钮,或导航离开页面时,应避免无效请求和状态错乱。

基本上就这些。不需要第三方库也能做得清晰可靠,关键是状态更新时机要准、异常路径要覆盖、用户体验要连贯。