前端React系列四:Ant Design簡(jiǎn)介

image.png

React 通過(guò) JSX 提供靈活的組件化開(kāi)發(fā)吐限,將 HTML 與 JavaScript 邏輯結(jié)合,使開(kāi)發(fā)更直觀褂始。其虛擬 DOM 和 Fiber 架構(gòu)提升性能诸典,通過(guò)高效的差異對(duì)比和異步渲染,使復(fù)雜應(yīng)用更流暢崎苗。
React 擁有龐大的生態(tài)系統(tǒng)和社區(qū)支持狐粱,豐富的第三方庫(kù)和工具(如 Redux、React Router)以及廣泛的企業(yè)采用(如 Facebook胆数、Netflix)推動(dòng)其發(fā)展肌蜻。Create React App 簡(jiǎn)化項(xiàng)目初始化,內(nèi)置現(xiàn)代開(kāi)發(fā)配置必尼。React Developer Tools 提供強(qiáng)大調(diào)試功能蒋搜,React Native 擴(kuò)展技術(shù)棧到移動(dòng)端,Hooks API 推動(dòng)函數(shù)式編程胰伍,使代碼更簡(jiǎn)潔和可重用齿诞。


React系列系列:
前端React系列一: React簡(jiǎn)介
前端React系列二: create-react-app簡(jiǎn)介
前端React系列三: TypeScript簡(jiǎn)介
前端React系列四:Ant Design簡(jiǎn)介
前端React系列五:React+CRA+TS+Ant Design高效開(kāi)發(fā)前端
前端React系列六:ant-design-pro簡(jiǎn)介
前端React系列七:ant-design-pro輔助開(kāi)發(fā)命令
前端React系列八:Umi簡(jiǎn)介
前端React系列九:Umi環(huán)境變量


前言

Ant Design 是一個(gè)企業(yè)級(jí) UI 設(shè)計(jì)語(yǔ)言和 React UI 庫(kù),由阿里巴巴集團(tuán)旗下的 Ant Financial 開(kāi)發(fā)和維護(hù)骂租。它旨在幫助開(kāi)發(fā)者快速構(gòu)建富有交互性的用戶界面祷杈,并提供了一套完整的設(shè)計(jì)語(yǔ)言和組件庫(kù),覆蓋了常見(jiàn)的 UI 需求渗饮。


image.png

1. 設(shè)計(jì)理念

Ant Design 的設(shè)計(jì)理念基于以下幾點(diǎn):

  • 優(yōu)雅
    提供優(yōu)雅和高質(zhì)量的設(shè)計(jì)解決方案但汞。
  • 一致
    確保在不同的應(yīng)用場(chǎng)景中保持設(shè)計(jì)的一致性。
  • 模塊化
    組件化設(shè)計(jì)互站,方便復(fù)用和維護(hù)私蕾。
  • 易用
    簡(jiǎn)單易用的 API,降低開(kāi)發(fā)和維護(hù)成本胡桃。

2. 特性

  • 豐富的組件庫(kù)
    提供了超過(guò) 60 種經(jīng)過(guò)精心設(shè)計(jì)和實(shí)現(xiàn)的 UI 組件踩叭,覆蓋表單、數(shù)據(jù)展示、導(dǎo)航容贝、反饋等多種場(chǎng)景自脯。
  • 設(shè)計(jì)語(yǔ)言
    擁有一套系統(tǒng)化的設(shè)計(jì)語(yǔ)言,幫助設(shè)計(jì)師和開(kāi)發(fā)者保持設(shè)計(jì)和實(shí)現(xiàn)的一致性斤富。
  • 響應(yīng)式設(shè)計(jì)
    支持響應(yīng)式布局膏潮,適應(yīng)不同屏幕尺寸的需求。
  • 高擴(kuò)展性
    組件支持高定制化满力,可以根據(jù)項(xiàng)目需求進(jìn)行擴(kuò)展和二次開(kāi)發(fā)焕参。
  • 國(guó)際化支持
    內(nèi)置國(guó)際化支持,方便開(kāi)發(fā)多語(yǔ)言應(yīng)用油额。

3. 核心組件

Ant Design 提供了豐富的組件叠纷,以下是一些常用的核心組件:

  • Button
    按鈕組件,支持不同的樣式和狀態(tài)悔耘。
  • Form
    表單組件讲岁,支持表單驗(yàn)證和多種表單控件。
  • Table
    表格組件衬以,支持排序缓艳、篩選、分頁(yè)等功能看峻。
  • Modal
    模態(tài)框組件阶淘,用于展示重要信息或用戶交互。
  • Menu
    菜單組件互妓,適用于導(dǎo)航和功能選擇溪窒。
  • Input
    輸入框組件,支持多種輸入類(lèi)型冯勉。
  • DatePicker
    日期選擇器澈蚌,支持多種日期和時(shí)間選擇。

4. 安裝和使用

安裝

可以通過(guò) npm 或 yarn 安裝 Ant Design:

npm install antd
# 或者
yarn add antd

使用

在 React 項(xiàng)目中使用 Ant Design 非常簡(jiǎn)單灼狰。以下是一個(gè)基本示例宛瞄,展示如何在項(xiàng)目中引入和使用 Ant Design 組件:

import React from 'react';
import { Button, DatePicker } from 'antd';
import 'antd/dist/antd.css'; // 引入 Ant Design 樣式

const App: React.FC = () => {
  return (
    <div style={{ padding: 20 }}>
      <h1>Welcome to Ant Design</h1>
      <DatePicker style={{ marginBottom: 20 }} />
      <br />
      <Button type="primary">Ant Design Button</Button>
    </div>
  );
};

export default App;

5. 自定義主題

Ant Design 支持通過(guò) Less 來(lái)自定義主題,可以根據(jù)項(xiàng)目需求更改默認(rèn)的樣式和配色交胚。

安裝 Less 相關(guān)依賴

npm install less less-loader
# 或者
yarn add less less-loader

配置主題

使用 CRACO 來(lái)配置自定義主題:

安裝 CRACO 和 craco-less:

npm install @craco/craco craco-less
# 或者
yarn add @craco/craco craco-less

創(chuàng)建 craco.config.js 文件咽扇,并配置 Less 變量:

const CracoLessPlugin = require('craco-less');

module.exports = {
  plugins: [
    {
      plugin: CracoLessPlugin,
      options: {
        lessLoaderOptions: {
          lessOptions: {
            modifyVars: { '@primary-color': '#1DA57A' }, // 自定義主顏色
            javascriptEnabled: true,
          },
        },
      },
    },
  ],
};

修改 package.json 中的腳本:

"scripts": {
  "start": "craco start",
  "build": "craco build",
  "test": "craco test"
}

在項(xiàng)目中引入 Less 樣式:

import 'antd/dist/antd.less'; // 引入 Ant Design 的 Less 樣式

6. 國(guó)際化支持

Ant Design 提供了內(nèi)置的國(guó)際化支持辟犀,可以根據(jù)需求切換不同的語(yǔ)言。以下是一個(gè)簡(jiǎn)單的國(guó)際化示例:

安裝國(guó)際化包:

npm install @ant-design/pro-layout
# 或者
yarn add @ant-design/pro-layout

配置國(guó)際化:

import React from 'react';
import { ConfigProvider, DatePicker, message, Button } from 'antd';
import zhCN from 'antd/lib/locale/zh_CN';
import enUS from 'antd/lib/locale/en_US';

const App: React.FC = () => {
  const [locale, setLocale] = React.useState(zhCN);

  const changeLocale = () => {
    setLocale(locale === zhCN ? enUS : zhCN);
    message.info(`Locale changed to ${locale === zhCN ? 'English' : '中文'}`);
  };

  return (
    <ConfigProvider locale={locale}>
      <div style={{ padding: 20 }}>
        <Button onClick={changeLocale}>Change Locale</Button>
        <DatePicker style={{ marginLeft: 20 }} />
      </div>
    </ConfigProvider>
  );
};

export default App;

總結(jié)

Ant Design 是一個(gè)功能強(qiáng)大且易用的 UI 庫(kù)慎冤,適用于構(gòu)建復(fù)雜和高質(zhì)量的前端界面绊袋。它提供了豐富的組件椎扬、良好的設(shè)計(jì)理念和高可定制性轮听,使得開(kāi)發(fā)者可以高效地創(chuàng)建和維護(hù)應(yīng)用笋鄙。無(wú)論是大型企業(yè)應(yīng)用還是個(gè)人項(xiàng)目吸重,Ant Design 都是一個(gè)值得推薦的選擇。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末歪今,一起剝皮案震驚了整個(gè)濱河市晤锹,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌彤委,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,324評(píng)論 6 498
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件或衡,死亡現(xiàn)場(chǎng)離奇詭異焦影,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)封断,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,356評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門(mén)斯辰,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人坡疼,你說(shuō)我怎么就攤上這事彬呻。” “怎么了柄瑰?”我有些...
    開(kāi)封第一講書(shū)人閱讀 162,328評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵闸氮,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我教沾,道長(zhǎng)蒲跨,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,147評(píng)論 1 292
  • 正文 為了忘掉前任授翻,我火速辦了婚禮或悲,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘堪唐。我一直安慰自己巡语,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,160評(píng)論 6 388
  • 文/花漫 我一把揭開(kāi)白布淮菠。 她就那樣靜靜地躺著男公,像睡著了一般。 火紅的嫁衣襯著肌膚如雪兜材。 梳的紋絲不亂的頭發(fā)上理澎,一...
    開(kāi)封第一講書(shū)人閱讀 51,115評(píng)論 1 296
  • 那天,我揣著相機(jī)與錄音曙寡,去河邊找鬼糠爬。 笑死,一個(gè)胖子當(dāng)著我的面吹牛举庶,可吹牛的內(nèi)容都是我干的执隧。 我是一名探鬼主播,決...
    沈念sama閱讀 40,025評(píng)論 3 417
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼镀琉!你這毒婦竟也來(lái)了峦嗤?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 38,867評(píng)論 0 274
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤屋摔,失蹤者是張志新(化名)和其女友劉穎烁设,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體钓试,經(jīng)...
    沈念sama閱讀 45,307評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡装黑,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,528評(píng)論 2 332
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了弓熏。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片恋谭。...
    茶點(diǎn)故事閱讀 39,688評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖挽鞠,靈堂內(nèi)的尸體忽然破棺而出疚颊,到底是詐尸還是另有隱情,我是刑警寧澤信认,帶...
    沈念sama閱讀 35,409評(píng)論 5 343
  • 正文 年R本政府宣布材义,位于F島的核電站,受9級(jí)特大地震影響狮杨,放射性物質(zhì)發(fā)生泄漏母截。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,001評(píng)論 3 325
  • 文/蒙蒙 一橄教、第九天 我趴在偏房一處隱蔽的房頂上張望清寇。 院中可真熱鬧,春花似錦护蝶、人聲如沸华烟。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,657評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)盔夜。三九已至,卻和暖如春堤魁,著一層夾襖步出監(jiān)牢的瞬間喂链,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,811評(píng)論 1 268
  • 我被黑心中介騙來(lái)泰國(guó)打工妥泉, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留椭微,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,685評(píng)論 2 368
  • 正文 我出身青樓盲链,卻偏偏與公主長(zhǎng)得像蝇率,于是被迫代替她去往敵國(guó)和親迟杂。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,573評(píng)論 2 353

推薦閱讀更多精彩內(nèi)容