前端React系列四:Ant Design简介

image.png

React 通过 JSX 提供灵活的组件化开发,将 HTML 与 JavaScript 逻辑结合,使开发更直观。其虚拟 DOM 和 Fiber 架构提升性能,通过高效的差异对比和异步渲染,使复杂应用更流畅。
React 拥有庞大的生态系统和社区支持,丰富的第三方库和工具(如 Redux、React Router)以及广泛的企业采用(如 Facebook、Netflix)推动其发展。Create React App 简化项目初始化,内置现代开发配置。React Developer Tools 提供强大调试功能,React Native 扩展技术栈到移动端,Hooks API 推动函数式编程,使代码更简洁和可重用。


React系列系列:
前端React系列一: React简介
前端React系列二: create-react-app简介
前端React系列三: TypeScript简介
前端React系列四:Ant Design简介
前端React系列五:React+CRA+TS+Ant Design高效开发前端
前端React系列六:ant-design-pro简介
前端React系列七:ant-design-pro辅助开发命令
前端React系列八:Umi简介
前端React系列九:Umi环境变量


前言

Ant Design 是一个企业级 UI 设计语言和 React UI 库,由阿里巴巴集团旗下的 Ant Financial 开发和维护。它旨在帮助开发者快速构建富有交互性的用户界面,并提供了一套完整的设计语言和组件库,覆盖了常见的 UI 需求。


image.png

1. 设计理念

Ant Design 的设计理念基于以下几点:

  • 优雅
    提供优雅和高质量的设计解决方案。
  • 一致
    确保在不同的应用场景中保持设计的一致性。
  • 模块化
    组件化设计,方便复用和维护。
  • 易用
    简单易用的 API,降低开发和维护成本。

2. 特性

  • 丰富的组件库
    提供了超过 60 种经过精心设计和实现的 UI 组件,覆盖表单、数据展示、导航、反馈等多种场景。
  • 设计语言
    拥有一套系统化的设计语言,帮助设计师和开发者保持设计和实现的一致性。
  • 响应式设计
    支持响应式布局,适应不同屏幕尺寸的需求。
  • 高扩展性
    组件支持高定制化,可以根据项目需求进行扩展和二次开发。
  • 国际化支持
    内置国际化支持,方便开发多语言应用。

3. 核心组件

Ant Design 提供了丰富的组件,以下是一些常用的核心组件:

  • Button
    按钮组件,支持不同的样式和状态。
  • Form
    表单组件,支持表单验证和多种表单控件。
  • Table
    表格组件,支持排序、筛选、分页等功能。
  • Modal
    模态框组件,用于展示重要信息或用户交互。
  • Menu
    菜单组件,适用于导航和功能选择。
  • Input
    输入框组件,支持多种输入类型。
  • DatePicker
    日期选择器,支持多种日期和时间选择。

4. 安装和使用

安装

可以通过 npm 或 yarn 安装 Ant Design:

npm install antd
# 或者
yarn add antd

使用

在 React 项目中使用 Ant Design 非常简单。以下是一个基本示例,展示如何在项目中引入和使用 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 支持通过 Less 来自定义主题,可以根据项目需求更改默认的样式和配色。

安装 Less 相关依赖

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

配置主题

使用 CRACO 来配置自定义主题:

安装 CRACO 和 craco-less:

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

创建 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"
}

在项目中引入 Less 样式:

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

6. 国际化支持

Ant Design 提供了内置的国际化支持,可以根据需求切换不同的语言。以下是一个简单的国际化示例:

安装国际化包:

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

配置国际化:

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;

总结

Ant Design 是一个功能强大且易用的 UI 库,适用于构建复杂和高质量的前端界面。它提供了丰富的组件、良好的设计理念和高可定制性,使得开发者可以高效地创建和维护应用。无论是大型企业应用还是个人项目,Ant Design 都是一个值得推荐的选择。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,294评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,493评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,790评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,595评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,718评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,906评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,053评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,797评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,250评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,570评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,711评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,388评论 4 332
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,018评论 3 316
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,796评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,023评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,461评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,595评论 2 350

推荐阅读更多精彩内容