Blazor模板化组件核心是RenderFragment和RenderFragment参数,前者用于静态内容(如Header),后者用于数据驱动场景(如RowTemplate),支持@context或自定义上下文变量,可组合多模板构建高复用组件,并需注意延迟执行、状态传递和事件解耦等细节。
Blazor 使用模板化组件的核心是 RenderFragment 和 RenderFragment
适合标题、页脚、操作栏这类不依赖数据项的区域。
[Parameter] public RenderFragment Header { get; set; }
@Header 插入位置,比如:@Header
用户列表
共 @items.Count() 条记录
适合表格行、列表项等需要逐条绑定数据的场景,T 就是每项的数据类型。
[Parameter] public RenderFragment RowTemplate { get; set; }
@foreach (var user in Users) { @RowTemplate(user) }
@context 接收传入项:
@context.Name
@context.Email
@u.
Name
比如一个通用表格组件,可以同时支持头、体、尾三段模板。
HeaderTemplate、RowTemplate、FooterTemplate
@HeaderTemplate
@*循环调用 RowTemplate*@
@FooterTemplate
姓名
邮箱
@context.Name
@context.Email
避免常见坑点,让模板真正可控可用。
@ 调用时才渲染,不会提前求值CascadingParameter,不能直接读父级 @code 块里的字段EventCallback 参数把回调传进来,保持解耦@if (true) { DEBUG } 快速确认是否进入渲染流程基本上就这些。模板化组件不复杂但容易忽略泛型参数和上下文绑定逻辑,写熟了能大幅减少重复 UI 代码。