

新闻资讯
技术教程[Parameter] 是 Blazor 组件接收外部输入的核心机制,要求 public、可写、非 static/readonly;支持简单类型、RenderFragment、EventCallback 等;可用 Mandatory 控制必需性,配合 OnParametersSet 或 SetParametersAsync 响应变更。
Blazor 中的 [Parameter] 是定义组件可接收外部输入的核心机制,它让组件具备复用性和灵活性。参数必须是 public、可写(即有 set 访问器)的属性,且不能是 static 或 readonly。
在子组件中用 [Parameter] 标记属性,父组件通过 HTML 属性语法传值:
string、int、bool、DateTime 等UserName → user-name),也可用 [Parameter(Name = "custom-name")] 显式指定null,值类型为默认值(如 int 是 0)用 [Parameter(Mandatory = true)] 表示该参数必须由父组件提供,否则运行时报错;若需自定义默认行为,可在 SetParametersAsync 或 OnInitialized 中补全:
Mandatory = true 仅在编译期不检查,错误发生在组件渲染时Mandatory 时,建议在 OnInitialized 中判断是否为默认值并做兜底处理get 中直接返回默认值(如 => _value ?? "default"),因为无法触发重渲染[Parameter] 还能接收 UI 片段或委托,实现高级封装:
[Parameter] public RenderFragment ChildContent { get; set; } 用于接收 Hello
中的内容[Parameter] public EventCallback OnClick { get; set; } 接收回调方法,触发用 await OnClick.InvokeAsync("data")
RenderFragment 参数可配合命名模板使用(如 HeaderTemplate、FooterTemplate)参数更新会触发组件重新渲染,但若需在参数变化时执行逻辑,应重写 SetParametersAsync 或监听 OnParametersSet:
OnParametersSet 在每次参数更新后、首次渲染及后续重渲染前调用OnParametersSetAsync 中处理,并调用 StateHasChanged()(必要时)SetParametersAsync 中直接修改 Parameters,应先调用 base.SetParametersAsync(parameters)
基本上就这些。掌握 [Parameter] 的边界和配合时机,就能写出清晰、健壮、易维护的 Blazor 组件。