Blazor为我们预留了多种类型的内置输入组件,让我们可以减少工作量,不在实现基础组件上花费时间成本。简化了表单创建和数据绑定过程。这些组件支持双向数据绑定、验证和自定义样式,让开发者能够快速构建交互式表单。
优势
内置验证集成
- 无缝衔接数据注解:结合 DataAnnotationsValidator 和模型属性上的验证特性(如 [Required]、[Range]),自动生成客户端验证逻辑,实时反馈错误(如高亮无效字段、显示ValidationSummary)
- 解析错误处理:智能组件(如 InputDate、InputNumber)自动将无效输入(如非数字字符)标记为验证错误,避免异常传递 。
性能优化
- 差异渲染:内置组件仅在绑定值变化时触发渲染,减少不必要的 DOM 操作
- 轻量级设计:如 InputText 仅渲染基础 元素,避免冗余封装
封装的输入组件
封装的输入组件如下图:
- InputCheckbox:表示复选框。
- InputDate:表示类型为 date 的日期选择框。
- InputFile:表示文件上传。
- InputNumber:表示数字框。
- InputRadio:表示单选按钮。
- InputRadioGroup:表示单选按钮组。
- InputSelect:表示下拉菜单或列表选择框。
- InputText:表示单行文本框。
- InputTextArea:表示多行文本框。
示例
从写法上我们直接使用对应的内置组件类型即可
<InputText @bind-Value="user.Name" placeholder="全名" />
<InputNumber @bind-Value="user.Age" placeholder="年龄" />
<InputTextArea @bind-Value="user.Bio" placeholder="个人简介" />
<InputCheckbox @bind-Value="user.AcceptTerms" />
<InputDate @bind-Value="user.BirthDate" />
<InputSelect @bind-Value="user.Country">
<option value="">-- 选择国家 --</option>
<option value="us">美国</option>
<option value="cn">中国</option>
<option value="jp">日本</option>
</InputSelect>
往期推荐
大家对Blazor有兴趣的话,也可以观看我的其他文章,感谢支持
Blazor-EditContext