當前位置: 妍妍網 > 碼農

AntDesign Blazor 0.19.0釋出:互動式在地化、靜態SSR表單,ReuseTabs 範例上線

2024-05-11碼農

大家好,勞動假期過後,又要回來為賦能每一個人的理想繼續辛勤勞動了。


假期前後我就在為 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