Ant Design 4.0 正式發布

2020-12-24 ATech

2月28日,廣受開發者歡迎的前端開源項目Ant Design發布4.0正式版本。這是兩年多以來的首次發布的裡程碑版本。

大家可以訪問 ant.design 了解更多信息,或在GitHub上關注Ant Design項目。

需要注意的是,v3 版本於 2019 年 12 月合入 3.x-stable 分支並進入維護狀態。我們仍然會為 v3 版本進行半年的維護工作。維護截止日期為 2020 年 5 月。

設計規範升級

我們將基礎圓角由 4px 調整為 2px。中後臺產品以效率為第一優先級,圓角樣式作為 UI 上的重要細節,更小的圓角從視覺上減少界面細節,提升了信息閱讀效率。此外,我們對陰影進行了調整,使其更符合真實陰影,也同時將信息層級更好體現。

暗色主題

我們基於 v3 版本的色彩系統進行了升級,v4 提供了暗色主題。你可以在頁面中點擊切換主題功能查看暗色主題效果:

無邊框組件

在業務中,我們發現有些場景會存在輕量級的選擇組件。因而我們提供了一種新的無邊框樣式,讓開發者可以更簡單的嵌入這些組件而不用額外覆蓋樣式。

兼容性調整

Ant Design 3.0 為了兼容舊版 IE 做出了非常多的努力。然而根據業界統計,IE9/10 瀏覽器無論是在全球還是在國內份額都在隨著 Windows 系統更新而在不斷縮減。我們在 4.0 版本,停止對 IE 9/10 的支持工作(但仍然會支持 IE 11)。因而過去一些低性能的組件,也會隨著新的 css 特性而獲得性能提升。

與此同時,我們也將 v4 依賴的 React 最低版本要求升級到了 React 16.9。這意味著,v4 版本將會提供更多的 hooks 以簡化你的代碼。

此外,我們也將在 v3 版本警告的一些廢棄 API 進行了移除。我們強烈建議你將當前項目升級到 v3 的最後一個版本,並根據 warning 信息將廢棄 API 進行更新。

更小的尺寸

在 antd@3.9.0 中,我們引入了 svg 圖標。使用了字符串命名的圖標 API 無法做到按需加載,因而全量引入了 svg 圖標文件,這大大增加了打包產物的尺寸。在 4.0 中,我們調整了圖標的使用 API 從而支持 tree shaking,減少 antd 默認包體積約 150 KB(Gzipped)。

舊版 Icon 使用方式將被廢棄,4.0 中會採用按需引入的方式。此外,我們也對相關依賴進行了精簡,從而降低打包尺寸(Gzipped):

組件重做

Form 重做

Form 作為高頻使用的組件,其 API 略顯冗餘。用戶需要通過 Form.create 的 HOC 方式獲得表單實例,而通過 form.getFieldDecorator 來對組件進行數據綁定。此外,每次數據變更便會進行整個表單的重新渲染,這使得在大數據表單中性能堪憂。在 v4 版本中,Form 將自帶表單實例,你可以直接通過 Form.Item 的 name 屬性進行數據綁定,從而簡化你的代碼。

我們發現大多數場景下,開發者其實只關注表單提交成功的值。因而我們提供了 onFinish ,其只會在表單驗證通過後觸發,而 validateFields 不在需要。

此外,Form 提供了 hooks 方法 Form.useForm 允許你對表單示例進行控制。

同時,我們提供了 Form.List 組件,使你可以非常方便的實現列表欄位的控制。

Table 重做

由於我們提升了兼容性的最低要求,我們改成使用 sticky 樣式進行固定列的實現,因而大大減少了表單擁有固定列時的性能消耗。而對於不支持 sticky 的 IE 11,我們採取降級處理。

同時,我們提供了新的 summary API 用於實現總結行的效果:

對於 sorter 提供了多列排序的功能:

此外,我們調整了底層邏輯,現在 fixedColumn、expandable、scroll 可以混合使用。提供了 body API 用於自定義表格內容實現,你可以由此實現諸如虛擬滾動的效果。

全新 DatePicker、 TimePicker 與 Calendar

我們對日期組件進行了整體重寫,因而將其與 moment 進行解耦。你可以通過我們提供的 generate 方法生成自定義日期庫的 Picker 組件。為了保持兼容,默認的 Picker 組件仍然使用 moment 作為日期庫。

此外,我們提供了全套的時間、日期、周、月、年選擇器以及對應的範圍選擇器。你可以通過 picker 屬性進行設置,不再需要通過 mode 的受控方法來實現特地的選擇器。

在範圍選擇器上,我們也對交互進行了優化。你現在可以單獨的選擇開始或結束時間,並且完美優化了手動輸入日期的體驗。

Notification/Modal 提供 Hooks

在過去版本,你或許會遇到 Modal.xxx 和 Notification.xxx 調用方法無法獲得 Context 的問題。這是由於我們對於這些語法糖會額外通過 ReactDOM.render 創建一個 React 實例,這也導致了 context 丟失的問題。在新版中,我們提供了 hooks 方法,讓你可以將節點注入到需要獲得 context 的地方。

虛擬滾動

v4 中,我們將 Tree、TreeSelect、Select 進行了改造,其默認使用虛擬滾動技術進行性能優化以承載大數據量的選項渲染。

Living demo:

https://ant.design/components/select-cn/#components-select-demo-big-data

此外,也對鍵盤交互以及無障礙進行了優化。

更多新功能/特性/優化部分

· ConfigProvider 提供 direction 配置以支持 rtl 語言國際化。

· Form 與 ConfigProvider 支持 size 設置包含組件尺寸。

· Typography 增加 suffix 屬性。

· Progress 增加 steps 子組件。

· TextArea 支持 onResize。

· Grid 使用 flex 布局。

· ......

如何升級

為了儘可能簡化升級,我們保持了最大兼容。但是仍然有一部分 breaking change 需要注意。你可以首先嘗試使用我們提供的 codemod 工具進行遷移,對部分無法遷移的內容進行手工遷移。升級請參考官方文檔。

以上

Ant Design 4.0 的誕生離不開社區志願者的貢獻與支持,感謝 @saeedrahimi實現了 rtl 的國際化功能,@shaodahong 對於兼容包的貢獻,以及每個參與幫助開發的人。是你們為開源的貢獻讓 Ant Design 變得更加美好!

相關焦點

  • Ant Design 4.0 發布,來看看如何升級?
    Ant Design 4.0正式版於 2 月 28 日提前發布,本文將幫助你從antd 3.x版本升級到antd 4.x版本。升級準備請先升級到 3.x 的最新版本,按照控制臺 warning 信息移除/修改相關的 API。升級項目 React 16.12.0 以上。
  • Ant Design 4.0 正式版來了!究竟變化了多少,是否值得下水
    經過 1 個多月的反饋收集和調整之後,終於迎來了 4.0 的正式版!感謝在此期間每一位提供反饋、建議以及貢獻的人。我們會結合 rc 版本已經涉及的更新以及一些比較重要的新增內容於此進行列舉。完整的更新文檔可以點擊此處。
  • 玩轉Ant Design Pro 一
    ant design pro來源於ant design,其是一段自帶樣式的react組件,用於企業後臺的漂亮的,可控的組件。因為ant design很強大,阿里有些大神就直接將ant design繼續向上封裝成一個完整的項目,這就是ant design pro,注意ant design pro已經是一個成形的項目,配置環境已經好了,我們做項目只需要在其上進行增刪改就可以了,其就是個腳手。
  • Ant Design 4.0正式發布:創造快樂工作
    2月28日,廣受開發者歡迎的前端開源項目Ant Design發布4.0正式版本。這是兩年多以來的首次發布的裡程碑版本。新版本中進行了多項改進,包括:   設計規範升級。增加了暗色主題和無邊框組件。   兼容性調整。最低支持IE 11,依賴的React最低版本升級到16.9。   更小的尺寸。
  • 阿里開源 Ant Design 4.2.3 正式發布
    Ant Design 4.2.3 已發布,更新內容如下:• 重構 rc-progress 以解決。• 重寫了 在 create-react-app 中使用。• Drawer修復 Drawer getContainer={false} 時的高度問題。
  • 【鈦晨報】阿里開源Ant Design隱藏聖誕節彩蛋遭遇開發者炮轟
    Ant Design 的核心維護人員面對用戶突如其來的質疑和吐槽,立馬做出了回應, 並提供了修復的方法: 關於 Ant Design 聖誕彩蛋,起源自 2018 年 9 月 10 日我的一次提交:add christmas easter egg · ant-design/ant-design@00aebeb,代碼實現會在 12 月 25 日當天給所有按鈕添加積雪效果
  • Ant Design 4.0.2 發布,企業級 UI 設計語言
    Go 1.16 發布了首個 Beta 測試版,正式版計劃於明年2月發布。
  • Ant Design 4.2.0 發布,企業級 UI 設計語言
    Eclipse 4.18 (2020-12) 穩定版已發布。
  • 阿里開源Ant Design 4.2.3 正式發布 重構rc-progress以解決
    Ant Design 4.2.3 已發布,更新內容如下:  • 重構 rc-progress 以解決。  • 重寫了 在 create-react-app 中使用。  • Drawer修復 Drawer getContainer={false} 時的高度問題。
  • Ant Design 4.0,脫離業務的框架都是耍流氓
    2 月底,Ant Design 發布了4.0版本,在性能、交互、以及設計上進行了一次全面的革新。作為Ant Design 的實踐案例、業務需求方和同一層樓的小夥伴,語雀和Ant Design一起聊了聊「4.0 背後的故事」。
  • 《Valorant》正式上線後人氣暴跌,硬核遊戲高爽體驗才是王道
    截至到目前,拳頭的FPS遊戲《Valorant》已經上線了四天時間。在Valorant封測期間,最高收視人數曾達到170萬。但《VALORANT》在6月2日正式上映當天的觀看時間僅為35萬小時。據統計網站EsportsCharts稱,與4月7日遊戲的封閉測試版發布時的1900萬小時觀看時間相比,這個數字顯得微不足道。不過,在解釋封閉測試版為何勝觀看人數能勝過遊戲正式發布版本時,還有一些變量需要考慮進去。
  • Google Web Design 10.0發布:新增4項功能
    Google Web Design 10.0 今天正式發布。它是適用於 Windows、Mac 和 Linux 的 HTML5 內容生成工具,憑藉著用戶友好性和豐富的輔助功能,而成為各種 Web 內容的首選。 Google Web Design 10.0.0.1123 版本新增了 4 個方面的功能,並修正了 12 個問題。
  • Diboot 2.0.5 發布,自動化開發助理 - OSCHINA - 中文開源技術交流...
    Diboot 2.0.5 發布,自動化開發助理,為您賦能提效一、前言Diboot 2.0.5
  • Valorant
    《Valorant》總觀看時間超3.34億小時 新型冠狀病毒疫情繼續推動著流媒體觀看總時長的增長,根據 StreamElements 與 Arsenal.gg 公開的統計數據顯示,4月流媒體平臺觀看總時長較上月相比上升了45%,與去年同期相比更是增長了99%之多;其中單是 Twitch 平臺四月的觀看總時長與去年同期相比就增長了99%
  • 基於SpringBoot+AntDesign 的快速開發平臺,JeecgBoot 2.0.2 版本...
    用戶管理│ ├─角色管理│ ├─菜單管理│ ├─權限設置(支持按鈕權限、數據權限)│ ├─表單權限(控制欄位禁用、隱藏)│ ├─部門管理│ └─字典管理│ └─樹分類字典│ └─系統公告│ └─我的組織機構├─消息中心│ ├─消息管理│ ├─模板管理├─智能化功能│ ├─代碼生成器功能(一鍵生成前後端代碼,生成後無需修改直接用,絕對是後端開發福音)│ ├─代碼生成器模板(提供4套模板
  • 拳頭FPS《Valorant》實機演示 5v5對抗2020年上線
    今日(3月2日),拳頭公司此前透露的 FPS 新作「Project A」公開了一段實機演示,官方也確認了該作的正式名稱為《Valorant》,此次的演示視頻由內部員工測試時錄製。
  • 遊民晚播報:拳頭FPS遊戲《Valorant》正式官宣 《最終幻想7:重製版...
    拳頭FPS新作《Valorant》正式官宣 首曝試玩演示今日,拳頭正式宣布FPS新作「Project A」名字為《Valorant》,遊戲將於2020年夏季上線,官方還在油管頻道公布了遊戲的內部測試演示,一起來欣賞一下。
  • 日產GT-R50 by Italdesign限量版車型參數配置正式公布
    因為早在2018年6月日產就已經宣布跟Italdesign合作生產打造GTR50byItaldesign,這中間也推出了一款原型車與正式量產版本,但其實到現在這款限定車都沒有正式上市,原先規劃是在今年日內瓦車展首發,但受到疫情的影響,這款限量50臺、售價高達99萬歐元的GTR50byItaldesign才在近期以在線發布的形式公開在世人面前,讓富豪們等了足足將近二年,不曉得有沒有人藉此跑單呢。
  • 《Valorant》中文語言設置指南 附下載教程
    《Valorant》2020年6月3日正式公測,玩家註冊拳頭遊戲帳號後下載遊戲客戶端即可登錄免費遊玩。 《Valorant》2020年6月3日正式公測,玩家註冊拳頭遊戲帳號後下載遊戲客戶端即可登錄免費遊玩,目前《Valorant》已經開放港服、韓服、日服、新加坡服、美服、歐服、俄服、澳服,其中港服
  • fragment design x Jordan Brand全系列發布;Travis限定麥當勞套裝...
    Travis Scott 親自釋出 與 McDonald's 合作消息 日前,Travis Scott 在其個人 Instagram 正式上釋出了自己與