讲师中心 微信公众号
AI工具推荐 视频效率加速

Blazor 怎么渲染列表数据

风辰吖_8934

风辰吖_8934

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

|

172人浏览过

|

来源于php中文网

原创

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

blazor 怎么渲染列表数据

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

用 @foreach 直接渲染基础列表

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

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

用 @key 提升列表更新效率

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

AI舌诊面诊问诊医疗系统+诊疗商城系统源码
AI舌诊面诊问诊医疗系统+诊疗商城系统源码

AI 舌诊面诊问诊医疗系统 + 诊疗商城系统源码是一套结合 AI 辅助诊断与商品转化的健康类程序,基于浩创云、ThinkPHP(PHP)开发,支持微信服务号与 H5 端,适合做中医舌诊面诊问答、健康建议推送以及配套诊疗商品的运营。

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

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

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

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

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

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

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

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

热门AI工具

更多
Loomy
Loomy Hot

一款AI工具,主要用于科大讯飞发布的桌面级 AI 助理,比 OpenClaw 更易用、更安全!,适合需要提升相关任务效率的用户。

墨刀AI
墨刀AI Hot

一款AI图像与设计工具,主要用于产品经理的专属智能体,适合需要提升相关任务效率的用户。

豆包大模型

豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

讯飞智作

讯飞智作是一款AI视频创作工具,AI文本配音工具,数字人课程、营销视频制作。

WorkBuddy

一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

咔片AIPPT

一款在线AI演示文稿制作工具,可根据主题和内容需求辅助生成PPT结构与页面,提高演示材料制作效率。

UP简历
UP简历 Hot

一款AI办公效率工具,主要用于基于AI技术的免费在线简历制作工具,适合需要提升相关任务效率的用户。

DeepSeek

DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

VibeKnow
VibeKnow Hot

一款AI视频创作工具,主要用于全球首个AI知识视频创作平台,文档、文章、网页,一键生成视频,适合需要提升相关任务效率的用户。

相关专题

更多
string转int
string转int

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

7159

2023.08.02

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

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

549

2023.09.22

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

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

1698

2024.03.01

php中foreach用法
php中foreach用法

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

818

2025.12.04

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

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

6541

2024.08.14

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

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

3045

2023.06.29

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

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

4141

2023.08.14

vb怎么连接数据库
vb怎么连接数据库

在VB中,连接数据库通常使用ADO(ActiveX 数据对象)或 DAO(Data Access Objects)这两个技术来实现:1、引入ADO库;2、创建ADO连接对象;3、配置连接字符串;4、打开连接;5、执行SQL语句;6、处理查询结果;7、关闭连接即可。

3411

2023.08.31

DBeaver怎么导入数据
DBeaver怎么导入数据

DBeaver数据导入专题,整理Excel、CSV、SQL、TXT等常见文件的数据导入方法,涵盖目标数据库选择、数据表创建、字段映射、数据类型设置及导入参数配置等操作,帮助用户将本地文件中的数据写入数据库,并了解批量导入、重复数据处理和导入失败等常见问题的解决方法。

20

2026.11.05

热门下载

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

精品课程

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

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn