0

0

Blazor 怎么渲染列表数据

月夜之吻

月夜之吻

发布时间:2025-12-26 15:31:02

|

152人浏览过

|

来源于php中文网

原创

Blazor渲染列表需用@foreach遍历集合,并配合@key提升更新效率、StateHasChanged()或ObservableCollection实现响应式更新,同时处理空状态与加载逻辑。

blazor 怎么渲染列表数据

Blazor 渲染列表数据很简单,核心是用 @foreach 遍历集合,配合组件生命周期和状态更新机制即可实时响应变化。

用 @foreach 直接渲染基础列表

这是最常用的方式。只要在 Razor 组件中定义一个可枚举的字段(比如 ListIEnumerable),就能直接遍历输出:

  • 确保数据字段是组件的 public 或 protected 成员,且在 OnInitializedOnParametersSet 中初始化
  • 在标记中写 @foreach (var item in items) {
    @item.Name
    }
  • Blazor 会自动为每个元素生成 DOM 节点,但注意:没有 key 属性时,列表更新可能触发整块重绘

用 @key 提升列表更新效率

当列表项可能增删改时,加上 @key 告诉 Blazor “哪个元素对应哪个数据”,避免不必要的 DOM 重建:

  • 在循环内包裹的标签上加 @key="item.Id"(推荐用唯一、稳定、非 null 的值,如数据库 ID)
  • 例如:@foreach (var user in users) { }
  • 不加 @key 时,插入第一个元素可能导致所有后续组件被销毁重建;加了之后 Blazor 只移动或复用对应 key 的组件实例

响应式更新:让列表动起来

Blazor 不会自动监听集合变化(比如 List.Add()),需要手动通知 UI 更新:

爱图表
爱图表

AI驱动的智能化图表创作平台

下载
  • 调用 StateHasChanged() 强制重新渲染(适合简单场景)
  • 更推荐用 ObservableCollection —— 它自带 INotifyCollectionChanged,Blazor 会自动响应增删改
  • 如果用 EF Core 或 API 获取数据,记得在 await 后赋值并调用 StateHasChanged(),否则可能因异步时机问题不刷新

带条件/空状态的列表渲染

实际项目中常要处理空列表、加载中、错误等状态:

  • @if (items == null) 显示加载中,@else if (!items.Any()) 显示“暂无数据”
  • 避免直接在 @foreach 外层套 @if 再进循环,而是先判断再统一渲染,逻辑更清晰
  • 可以封装成 ... 提高复用性(需自定义组件)

基本上就这些。关键不是语法多难,而是理解 Blazor 的渲染逻辑:数据变 → 通知刷新 → 比对 DOM → 差量更新。把 @key 和状态通知做对,列表就稳了。

相关专题

更多
string转int
string转int

在编程中,我们经常会遇到需要将字符串(str)转换为整数(int)的情况。这可能是因为我们需要对字符串进行数值计算,或者需要将用户输入的字符串转换为整数进行处理。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

311

2023.08.02

c语言中null和NULL的区别
c语言中null和NULL的区别

c语言中null和NULL的区别是:null是C语言中的一个宏定义,通常用来表示一个空指针,可以用于初始化指针变量,或者在条件语句中判断指针是否为空;NULL是C语言中的一个预定义常量,通常用来表示一个空值,用于表示一个空的指针、空的指针数组或者空的结构体指针。

226

2023.09.22

java中null的用法
java中null的用法

在Java中,null表示一个引用类型的变量不指向任何对象。可以将null赋值给任何引用类型的变量,包括类、接口、数组、字符串等。想了解更多null的相关内容,可以阅读本专题下面的文章。

430

2024.03.01

if什么意思
if什么意思

if的意思是“如果”的条件。它是一个用于引导条件语句的关键词,用于根据特定条件的真假情况来执行不同的代码块。本专题提供if什么意思的相关文章,供大家免费阅读。

703

2023.08.22

php中foreach用法
php中foreach用法

本专题整合了php中foreach用法的相关介绍,阅读专题下面的文章了解更多详细教程。

35

2025.12.04

DOM是什么意思
DOM是什么意思

dom的英文全称是documentobjectmodel,表示文件对象模型,是w3c组织推荐的处理可扩展置标语言的标准编程接口;dom是html文档的内存中对象表示,它提供了使用javascript与网页交互的方式。想了解更多的相关内容,可以阅读本专题下面的文章。

2647

2024.08.14

数据库三范式
数据库三范式

数据库三范式是一种设计规范,用于规范化关系型数据库中的数据结构,它通过消除冗余数据、提高数据库性能和数据一致性,提供了一种有效的数据库设计方法。本专题提供数据库三范式相关的文章、下载和课程。

326

2023.06.29

如何删除数据库
如何删除数据库

删除数据库是指在MySQL中完全移除一个数据库及其所包含的所有数据和结构,作用包括:1、释放存储空间;2、确保数据的安全性;3、提高数据库的整体性能,加速查询和操作的执行速度。尽管删除数据库具有一些好处,但在执行任何删除操作之前,务必谨慎操作,并备份重要的数据。删除数据库将永久性地删除所有相关数据和结构,无法回滚。

2066

2023.08.14

虚拟号码教程汇总
虚拟号码教程汇总

本专题整合了虚拟号码接收验证码相关教程,阅读下面的文章了解更多详细操作。

25

2025.12.25

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
10分钟--Midjourney创作自己的漫画
10分钟--Midjourney创作自己的漫画

共1课时 | 0.1万人学习

Midjourney 关键词系列整合
Midjourney 关键词系列整合

共13课时 | 0.8万人学习

AI绘画教程
AI绘画教程

共2课时 | 0.2万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号