Blazor中实现Toast通知需创建状态模型、ToastService和Toast组件。1. 状态模型含Id、Message、Type等字段;2. ToastService注册为Scoped服务,管理增删通知及定时关闭;3. Toast组件用@foreach渲染并绑定CSS动画;4. 在Program.cs注册服务,MainLayout中引入组件,任意组件注入调用Show方法。
Blazor 中实现 Toast 通知,核心是用一个可复用的组件管理状态、动画和生命周期,配合服务注入实现跨组件调用。不依赖 JS Interop 也能做,但加一点 CSS 动画会让体验更自然。
定义通知的基本结构,包括内容、类型(success/warning/error)、持续时间、是否自动关闭等:
注册为 Scoped 服务,负责添加、移除、批量清除通知:
和 ClearAll() 方法用于手动控制这是一个无逻辑的 UI 层,只负责渲染列表并绑定动画类:
在 Program.cs 中注册服务:builder.Services.AddScoped
在 MainLayout.razor 或 App.razor 底部引入组件:
任意组件中注入并调用:
@inject ToastService Toast
@code {
private void OnSave() {
Toast.Show("保存成功!", ToastType.Success);
}
}
基本上就这些。不需要第三方库,轻量可控,样式和行为都容易按项目需求调整。