大家好,勞動假期過後,又要回來為賦能每一個人的理想繼續辛勤勞動了。
假期前後我就在為 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