大家好,劳动假期过后,又要回来为赋能每一个人的理想继续辛勤劳动了。
假期前后我就在为 Ant Design Blazor 新版发布做准备,这个版本离上次0.18.0已经两个月了,期间得到了很多社区贡献者的帮助,解决了一些大问题。
我觉得最大的改进就是多级overlay开合的冲突问题,由pankey888 贡献解决。值得一提的是他主要用 delphi/c++,之前甚至没写过C#,但丝毫没影响他发现并解决了多个问题。
我们的用户不乏JAVA、Python、Go等语言的开发者,他们都在看过JS框架后明智地选择了Blazor,这多少得益于 AntDesign Blazor 的美观、易用和灵活性。
本次发布的改进有很多等待了很久的特性,他们终于都在灵光一现中被实现了。
本地化交互性增强
四年来我们组件库一直未内置本地化方案,这是因为我觉得Blazor官方的方式已经够用,只是缺少了交互性,切换时需要重新加载。
因为一直以来,Localization都是.NET的本地化最佳解决方案,而社区也做了多重资源文件格式,如json和yaml。纵观现有 Blazor 组件库的本地化实现,都是自己实现的服务。而我们的文档一直是中英双语的,实现了一个语言服务和静态字典来动态切换。但因为无法兼容.NET生态,一直不想下放到组件库中。我们希望组件尽量灵活,尽量提高扩展性。
这次我们引入了交互式本地化服务,它兼容 .NET 本身的Localizatin框架,无缝支持第三方提供者,却比官方提供的本地化方案更好,因为官方的需要刷新浏览器而且依赖接口,而我们提供的服务是无需刷新的UI语言切换。
ReuseTabs的文档和示例上线
另外一个重大变化,就是我们终于在文档上开辟了新的栏目『高阶功能』,这个栏目会放一些没有包含在 AntDesign 中功能组件。
我们首先把ReuseTabs 的文档和示例放到站点上了。 之前受限于站点自定义的路由和动态demo的实现方式(当然还有想象力),没能实现这种类似子应用的效果。但经过灵光一现,原来是可以的!这让我们以后实现更多完整的示例做了很好的示范。
Form表单支持静态SSR
静态SSR是.NET 8的最大改进,表单提交要用同步提交的方案,所以Form和表单组件都需要适配,才能让验证和绑定生效。因此我们对Form和部分组件进行了改进,让他们支持表单验证和模型绑定。
好了,更多细节请大家关注我们后面陆续发布的文章。另外,我们的Github sponsor 开通了,目前这个项目还是个人维持,需要有更多朋友和企业的赞助!
以下是本次更新列表。
0.19.0
2024-5-7
TreeSelect
🆕 新增 ExpandedKeys 属性。#3844 @pankey888
🆕 新增 TitleIconTemplate 属性。#3834 @pankey888
🆕 新增 泛型值支持。#3831 @ElderJames
🐞 修复 设置 TreeChecable 时勾选无效的问题。#3839 @pankey888
🐞 修复 在重新渲染时树节点会收取。#3827 @pankey888
Form
🔥 支持静态 SSR 模型绑定和验证。#3580 @ElderJames
🆕 新增 模型 DataAnnotations 的本地化支持。#3823 @ElderJames
🐞 修复 null 引用异常。#3815 @ElderJames
🐞 修复 当没有设置"变更时验证",在提交前不应该验证。#3812 @ElderJames
🐞 修复 动态模型的必填数据声明失效。#3811 @ElderJames
🐞 修复 的 IsModified 属性在 ValidateOnChange 时失效。#3795 @ElderJames
🐞 修复 动态字段的 Rules 验证方式。#3791 @ElderJames
🐞 修复 FormItem 绑定字典类型判断。#3787 @tiansfather
ReuseTabs
🆕 新增 公开 ReuseTabsService 的 Pages 属性,以供持久化等场景。#3800 @ElderJames
📖 增加 文档和示例。#3802 @ElderJames
🐞 修复 不应该自动跳转到第一个固定的tab。#3825 @ElderJames
Select
🆕 新增 EnumSelect 绑定有 Flags 特性的枚举类型时,支持用 Value 绑定组合值。
🐞 修复 选项列表随数据源变更重新排序。#3806 @miguelkmarques
📖 给 TableSelect 示例增加查询功能。#3797 @ElderJames
Modal
🆕 新增 自定义 Header。7be4807 [@Pat Hartl](https://github.com/Pat Hartl)
🆕 新增 支持更新确认按钮的 Loading 状态。#3796 @ElderJames
🛠 重构 ModalService 中创建模态框的方法同步地返回 ModalRef。#3794 @ElderJames
🐞 修复 JS 删除元素抛出异常。#3847 @ElderJames
DatePicker
🐞 修复 DatePicker 在使用 ShowTime 时,Now 按钮无法使用,并在关闭时更改。#3830 @agolub-s
🐞 修复 RangePicker 双向绑定失效,预设范围无法更新。#3850 @ElderJames
🔥 新增 交互式本地化服务。#3804 @ElderJames
🆕 新增 Checkbox 支持泛型值绑定。#3715 @ElderJames
🐞 修复 IsExternalInit 的访问级别,避免与第三方库冲突。#3799 @ElderJames
🐞 修复 InputNumber 粘贴带有分隔符的数字时无法绑定。#3841 @HuaFangYun
🐞 修复 Overlay 多子级关闭时,父级联动冲突。#3838 @pankey888
在此版本加入的新贡献者
@pathartl made their first contribution in https://github.com/ant-design-blazor/ant-design-blazor/pull/3579
@tiansfather made their first contribution in https://github.com/ant-design-blazor/ant-design-blazor/pull/3787
@miguelkmarques made their first contribution in https://github.com/ant-design-blazor/ant-design-blazor/pull/3806
@pankey888 made their first contribution in https://github.com/ant-design-blazor/ant-design-blazor/pull/3827
@HuaFangYun made their first contribution in https://github.com/ant-design-blazor/ant-design-blazor/pull/3841