Ant Design 3.0.0 正式發佈,大量修復和改進

Ant Design 3.0.0 正式發佈,Ant Design 是螞蟻金服開發和正在使用的一套企業級的 UI 設計語言和 React 實現。

轉載請註明:文章轉載自 開源中國社區 [http://www.oschina.net]

主要變化

  • 全新的色彩系統, 組件主色由 『#108EE9』 改爲 『#1890FF』,新主色我們稱之爲“拂曉藍”。

  • 全新的視覺樣式和組件尺寸,更現代更美觀。

  • 基礎字體大小由 12px 增大到 14px

  • 默認語言由中文改爲英文。

  • 全面支持 React 16。

  • 更友好的 TypeScript 支持。

  • 新的 List 組件。

  • 新的 Divider 組件。

  • 新增 30 個圖標

不兼容改動

  • Card 的 noHovering 屬性重命名爲 hoverable,且默認值改爲 true

  • 調整了 Grid 的響應式斷點值。詳見 #7230

  • Form getFieldDecorator 的 exclusive 參數被移除,此類場景應該由 Radio.Group、Checkbox.Group 之類的組件來完成。

  • 新增 Form.createFormField 方法,mapPropsToFields 返回的字段都需要由該方法創建。

    import { Form } from 'antd';
    

Form.create({
  mapPropsToFields() {
    return {
-     name: { value: ‘antd’ },
+     name: Form.createFormField({ value: ‘antd’ }),
    };
  },
})

  • 優化了全局的重置樣式,如果升級後你的全局樣式有問題,可以引入我們提供的 2.x 兼容樣式。

    import ‘antd/style/v2-compatible-reset’;

    或者在 less 裏引入

    @import ‘~antd/style/v2-compatible-reset.css’;
  • 由於默認語言改爲英文,如果你需要顯示中文,現在需要配置 LocalProvider

    import { LocaleProvider } from ‘antd’;
    import zhCN from ‘antd/lib/locale-provider/zh_CN’;
  • ReactDOM.render(
      <LocaleProvider locale={zhCN}><YourApp /></LocaleProvider>,
      document.getElementById(‘root’)
    );

  • Form 下的表單控件不再默認爲 size=“large”。

  • 以下在 2.x 中廢棄的特性被移除

    • 移除了 DatePicker.Calendar, 請直接使用 Calendar 組件。

    • 移除了 DatePicker 的 toggleOpen 屬性, 請使用 onOpenChange 代替。

    • 移除了 Form 的 inlinehorizontalvertical 屬性,請使用 layout 代替。

    • 移除了 Select 的 multipletagscombobox 屬性,請使用 mode 代替。

    • 移除了 Input 對 type=‘textarea’ 的支持,請直接使用 Input.TextArea 組件。

    • 移除了 Mention 的 toEditorState 方法,請使用 toContentState 代替。

    新增功能及改進

    • Tabs 新增 size=“large”

    • Row 的 gutter 屬性新增響應式斷點的支持,可以使用諸如 gutter={{ sm: 16, lg: 32 }} 的設置。

    • Spin 新增 indicator 屬性,用於設置自定義的加載指示符。 #7977 @kossel

    • Input.Search 新增 enterButton 用於設置自定義的搜索圖標。#7596

    • Mention 新增 placement, 用於設置下拉框的彈出方向。

    • Carousel 新增 next()prev()goTo(slideNumber) 方法,用於控制面板展示。

    • Button 新增鏈接支持,當提供 href 時會自動渲染爲 <a>#8343

    • Steps 進行了重構,首次渲染的時候不會再閃爍。 #6010

    • Switch 新增 loading 屬性,用於表現加載中的狀態。

    • Menu

      • 新增 subMenuOpenDelay 和 subMenuCloseDelay,用於設置子菜單打開和關閉的延遲。

      • 新增 forceSubMenuRender,用於強制渲染子菜單。#5586

    • Form

      • 新增顯示驗證信息時的動畫效果。

      • 新增按條件渲染表單項的支持。#react-component/117

    • Message

    • Badge

      • 新增 offset 屬性,用於設置狀態點的位置偏移。

      • status 允許與 children 同時使用。#8164

    • Card

      • 新增 inner 類型。例子

      • 新增 coveractions 以及 Meta 子組件。例子

    • DatePicker

      • 新增 mode 和 onPanelChange,用戶控制面板的展示模式。例子

      • 新增 WeekPicker 子組件。例子

      • 新增 dateRender 屬性,用於自定義日期單元格的渲染。

    • TimePicker

      • 新增 hourStepminuteStepsecondStep,用於設置時間步長。例子

      • 新增 focusOnOpen,用於設置在打開面板的時候是否聚焦輸入框。

    • Table

      • 新增 components 屬性,用於覆蓋表格元素的默認標籤。

        // 支持覆蓋的元素
        const components = {
          table: MyTable,
          header: {
            wrapper: HeaderWrapper,
            row: HeaderRow,
            cell: HeaderCell,
          },
          body: {
            wrapper: BodyWrapper,
            row: BodyRow,
            cell: BodyCell,
          },
        };

    <Table components={components} columns={columns data={data}}  />

  • 新增 onRow 屬性,用於設置表格列的屬性。

  • 新增 onHeaderRow,用戶設置表格頭部列的屬性。

  • 新增 column[onCell],用戶設置單元格的屬性。

  • 新增 column[onHeaderCell],用於設置頭部單元格的屬性。

  • 新增 column[align],用於設置列內文字的對其方向。

  • 新增 column[defaultSortOrder],用於設置列的默認排序。#8111 @megawac

  • 新增 rowSelection[fixed],用於固定選擇列。

  • 廢棄 getBodyWrapper,請使用 components 屬性代替。

  • 廢棄以下屬性 onRowClickonRowDoubleClickonRowContextMenuonRowMouseEnteronRowMouseLeave,請使用 onRow 代替。

    <Table onRow={(record) => ({
      onClick: () => {},
      onDoubleClick: () => {},
      onContextMenu: () => {},
      onMouseEnter: () => {},
      onMouseLeave: () => {},
    })} />
  • Select

    • 默認和多選模式下 Option 的值允許使用 number。

    • 新增 maxTagCount 和maxTagPlaceholder`,用與設置最多可顯示的選中項。

    • 新增 showAction,用於設置出發下拉框打開的事件。

    • 新增 onMouseEnter 和 onMouseLeave 事件回調。

  • LocaleProvider

  • Bug 修復

    • Form

      • 修復輸入框的圖標會被驗證圖標覆蓋的問題。

      • 修復使用大尺寸輸入框時,驗證圖標不居中的問題。

    • 修復 Menu 按鍵時的報錯。#8089

    其他

    • 在 TypeScript 中使用時不再需要設置 allowSyntheticDefaultImports

    • 從 peerDependencies 中移除了 [email protected] 和 react@15,雖然目前 antd 3.0.0 依然可以在舊版本的 React 上使用,但是我們在未來有可能使用 React 16 的新特性,所以強烈建議升級到 React 16,見升級文檔

    • 全面支持 ES Module ,antd 及其依賴的底層 react-component 組件全部提供了 ES Module 的構建版本,如果你使用 webpack 3,可以把 babel-import-plugin 的 libraryDirectory 設置爲 es,以獲得 Tree Shaking 的優化效果。

    • 最後,我們會繼續維護 2.x 的分支到明年 6 月份。

    更多內容見 Ant Design 3.0 發佈公告


    發表評論
    所有評論
    還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
    相關文章