0

0

Blazor 组件参数传递 [Parameter] 属性用法

幻夢星雲

幻夢星雲

发布时间:2025-12-30 11:33:51

|

559人浏览过

|

来源于php中文网

原创

[Parameter] 是 Blazor 组件接收外部输入的核心机制,要求 public、可写、非 static/readonly;支持简单类型、RenderFragment、EventCallback 等;可用 Mandatory 控制必需性,配合 OnParametersSet 或 SetParametersAsync 响应变更。

blazor 组件参数传递 [parameter] 属性用法

Blazor 中的 [Parameter] 是定义组件可接收外部输入的核心机制,它让组件具备复用性和灵活性。参数必须是 public、可写(即有 set 访问器)的属性,且不能是 static 或 readonly。

基础用法:接收简单类型参数

在子组件中用 [Parameter] 标记属性,父组件通过 HTML 属性语法传值:

  • 支持内置类型如 stringintboolDateTime
  • 属性名默认对应标签中的小驼峰命名(如 UserNameuser-name),也可用 [Parameter(Name = "custom-name")] 显式指定
  • 未传值时,引用类型为 null,值类型为默认值(如 int 是 0)

必需参数与默认值控制

[Parameter(Mandatory = true)] 表示该参数必须由父组件提供,否则运行时报错;若需自定义默认行为,可在 SetParametersAsyncOnInitialized 中补全:

  • Mandatory = true 仅在编译期不检查,错误发生在组件渲染
  • 不加 Mandatory 时,建议在 OnInitialized 中判断是否为默认值并做兜底处理
  • 避免在 get 中直接返回默认值(如 => _value ?? "default"),因为无法触发重渲染

接收组件内容(RenderFragment)和事件回调

[Parameter] 还能接收 UI 片段或委托,实现高级封装:

Cutout.Pro
Cutout.Pro

AI驱动的视觉设计平台

下载
  • [Parameter] public RenderFragment ChildContent { get; set; } 用于接收 <Child><p>Hello</p></Child> 中的内容
  • [Parameter] public EventCallback<string> OnClick { get; set; }</string> 接收回调方法,触发用 await OnClick.InvokeAsync("data")
  • 多个 RenderFragment 参数可配合命名模板使用(如 HeaderTemplateFooterTemplate

参数变更响应与生命周期配合

参数更新会触发组件重新渲染,但若需在参数变化时执行逻辑,应重写 SetParametersAsync 或监听 OnParametersSet

  • OnParametersSet 在每次参数更新后、首次渲染及后续重渲染前调用
  • 若需异步加载数据,应在 OnParametersSetAsync 中处理,并调用 StateHasChanged()(必要时)
  • 避免在 SetParametersAsync 中直接修改 Parameters,应先调用 base.SetParametersAsync(parameters)

基本上就这些。掌握 [Parameter] 的边界和配合时机,就能写出清晰、健壮、易维护的 Blazor 组件。

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

WorkBuddy
WorkBuddy

腾讯云推出的AI原生桌面智能体工作台

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
string转int
string转int

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

1051

2023.08.02

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

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

254

2023.09.22

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

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

1110

2024.03.01

string转int
string转int

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

1051

2023.08.02

int占多少字节
int占多少字节

int占4个字节,意味着一个int变量可以存储范围在-2,147,483,648到2,147,483,647之间的整数值,在某些情况下也可能是2个字节或8个字节,int是一种常用的数据类型,用于表示整数,需要根据具体情况选择合适的数据类型,以确保程序的正确性和性能。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

615

2024.08.29

c++怎么把double转成int
c++怎么把double转成int

本专题整合了 c++ double相关教程,阅读专题下面的文章了解更多详细内容。

335

2025.08.29

C++中int的含义
C++中int的含义

本专题整合了C++中int相关内容,阅读专题下面的文章了解更多详细内容。

235

2025.08.29

default gateway怎么配置
default gateway怎么配置

配置default gateway的步骤:1、了解网络环境;2、获取路由器IP地址;3、登录路由器管理界面;4、找到并配置WAN口设置;5、配置默认网关;6、保存设置并退出;7、检查网络连接是否正常。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

236

2023.12.07

TypeScript类型系统进阶与大型前端项目实践
TypeScript类型系统进阶与大型前端项目实践

本专题围绕 TypeScript 在大型前端项目中的应用展开,深入讲解类型系统设计与工程化开发方法。内容包括泛型与高级类型、类型推断机制、声明文件编写、模块化结构设计以及代码规范管理。通过真实项目案例分析,帮助开发者构建类型安全、结构清晰、易维护的前端工程体系,提高团队协作效率与代码质量。

49

2026.03.13

热门下载

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

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Bootstrap 5教程
Bootstrap 5教程

共46课时 | 3.6万人学习

AngularJS教程
AngularJS教程

共24课时 | 4.2万人学习

CSS教程
CSS教程

共754课时 | 43.4万人学习

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

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