Ant Design logo

Ant Design

企业级 React UI 组件库,全球第二受欢迎的 React UI 框架,为中后台系统提供开箱即用的完整解决方案。

精选工具React组件库企业级Design Token

蚂蚁集团开发的企业级 React UI 组件库,GitHub Stars 超过 98,000。采用三层 Design Token 体系,支持主题定制、国际化和无障碍访问,v6 针对 React 19 深度优化,开发渲染性能提升约 40%。

Ant Design

企业级 React UI 组件库,全球第二受欢迎的 React UI 框架,为中后台系统提供开箱即用的完整解决方案。

技术简介说明

Ant Design(简称 Antd)是由蚂蚁集团(Ant Group)体验技术部开发维护的企业级 React UI 组件库。自 2015 年发布以来,它已发展成为全球范围内最受欢迎的 React 组件库之一,GitHub Stars 超过 98,000,被数十万企业用于生产环境。其设计语言遵循「自然、确定性、意义感、生长性」四大原则,为企业级中后台应用提供了一致、专业、高品质的视觉体验。

Ant Design 的核心价值在于「设计即服务」的理念——它不仅是一套组件,更是一套完整的设计语言与工程体系。从设计令牌(Design Token)到主题定制,从国际化方案到无障碍支持,从组件到脚手架(Ant Design Pro),它覆盖了企业级前端开发的全链路需求。v6 版本更是针对 React 19 进行了深度优化,开发渲染性能提升约 40%。

作为一套面向企业级场景的组件库,Ant Design 在数据展示(表格、树、图表)、表单处理、权限管理等复杂业务场景中有着无可比拟的优势。配合 ProComponents(高级业务组件集)和 Ant Design Pro(企业级脚手架),可以在极短时间内搭建出功能完备的中后台系统。

基本信息

快速上手

安装

# 使用 npm
npm install antd
 
# 使用 yarn
yarn add antd
 
# 使用 pnpm
pnpm add antd

注意:Ant Design v6 要求 React 18 或更高版本,不再支持 React 17 及以下版本。

基础配置

Ant Design v6 默认使用 CSS-in-JS 方案,无需额外配置样式加载:

// 无需引入额外样式文件,v6 已内置 CSS-in-JS
import { ConfigProvider } from 'antd';
 
// 可选:配置中文语言包
import zhCN from 'antd/locale/zh_CN';
 
function App() {
  return (
    <ConfigProvider locale={zhCN}>
      {/* 你的应用内容 */}
      <MyApp />
    </ConfigProvider>
  );
}
 
export default App;

如果使用 Umi 或 Next.js 等框架,可能需要按需引入配置:

// umi.ts 或 .umirc.ts
export default {
  antd: {},
};

最小示例

import React from 'react';
import { Button, DatePicker, Space, message } from 'antd';
 
const App: React.FC = () => (
  <Space direction="vertical" size="middle">
    <Button type="primary" onClick={() => message.success('操作成功')}>
      主要按钮
    </Button>
    <DatePicker placeholder="选择日期" />
  </Space>
);
 
export default App;

核心概念与架构

设计令牌体系(Design Token)

Ant Design v6 延续并增强了 v5 引入的 Design Token 体系,这是其架构的核心。Design Token 分为三层:

  1. Seed Token(种子令牌):最基础的设计变量,如 colorPrimaryborderRadiusfontFamily 等。修改种子令牌即可自动衍生出整套色板。
  2. Map Token(映射令牌):由种子令牌通过算法自动派生的中间变量,用于控制渐变色、背景色、边框色等。
  3. Alias Token(别名令牌):面向组件消费的语义化变量,如 colorBgContainer(容器背景色)、colorText(文本色)等。
import { ConfigProvider, theme } from 'antd';
 
const { useToken } = theme;
 
// 自定义主题
<ConfigProvider
  theme={{
    token: {
      colorPrimary: '#1677ff',
      borderRadius: 6,
      colorBgContainer: '#fff',
    },
    algorithm: theme.defaultAlgorithm, // 或 theme.darkAlgorithm
  }}
>
  <App />
</ConfigProvider>;

CSS-in-JS 引擎

v6 继续使用内置的 CSS-in-JS 方案(基于 @ant-design/cssinjs),具有以下特点:

  • 零配置:无需安装额外的样式库,组件自带样式
  • 动态主题:运行时动态计算样式,支持嵌套主题
  • 哈希稳定:组件类名带稳定哈希值,便于调试和 SSR
  • 按需加载:只生成实际使用组件的样式

组件分层架构

┌─────────────────────────────┐
│   ProComponents(业务层)     │  ProTable, ProForm, ProLayout
├─────────────────────────────┤
│   antd 组件(通用层)         │  Button, Table, Form, Modal...
├─────────────────────────────┤
│   @ant-design/cssinjs       │  CSS-in-JS 引擎
├─────────────────────────────┤
│   React 18+                 │  运行时
└─────────────────────────────┘

核心特性

  • 开箱即用的高质量组件:提供 70+ 精心设计的 React 组件,覆盖表单、表格、导航、数据展示等场景
  • TypeScript 优先:全部使用 TypeScript 编写,提供完整的类型定义和智能提示
  • Design Token 主题系统:三层令牌体系(种子/映射/别名),支持精确到组件级别的样式定制
  • 国际化支持:内置 70+ 语言包,支持运行时切换语言
  • React 19 原生支持:v6 移除了 React 19 兼容代码,原生支持 Concurrent Features
  • 开发性能提升 40%:v6 优化了开发环境下的渲染性能
  • 无障碍支持:组件遵循 WAI-ARIA 规范,支持键盘导航和屏幕阅读器
  • 响应式设计:栅格系统和组件内置响应式断点支持
  • 服务端渲染(SSR):完整的 SSR 支持,兼容 Next.js、Umi 等框架
  • 主题算法:内置亮色、暗色、紧凑三种主题算法,支持自定义算法扩展

生态图

核心生态

┌─────────────────────────────────────────────────────────┐
│                    Ant Design 生态                        │
├──────────────┬──────────────┬────────────────────────────┤
│  基础组件     │  业务组件     │  开发工具                    │
│  antd        │  ProComponents│  Ant Design Pro             │
│  70+ 组件    │  ProTable     │  企业级脚手架                 │
│              │  ProForm      │  Ant Design CLI              │
│              │  ProLayout    │  项目脚手架 CLI               │
├──────────────┼──────────────┼────────────────────────────┤
│  数据可视化   │  移动端       │  AI 能力                     │
│  AntV        │  antd-mobile │  Ant Design X               │
│  G2/Graphin  │  React Native│  AI 组件与交互                │
│  Charts      │  方案         │                              │
├──────────────┼──────────────┼────────────────────────────┤
│  图标         │  设计资源     │  社区工具                     │
│  @ant-design/ │  Figma 组件  │  antd-theme-generator       │
│  icons       │  Sketch 资源  │  create-umi                 │
│              │  Kitchen     │                              │
└──────────────┴──────────────┴────────────────────────────┘

关键依赖

包名说明
antd核心组件库
@ant-design/pro-components高级业务组件(ProTable、ProForm、ProLayout)
@ant-design/icons200+ 官方图标
@ant-design/cssinjs内置 CSS-in-JS 引擎
@ant-design/colors色板生成算法
dayjs日期处理(替代 moment.js)
rc-*底层基础组件集合(rc-table、rc-select 等)

Ant Design X

Ant Design X 是 2024 年推出的 AI 能力扩展包,提供 AI 对话、流式渲染、AI 助手等场景的专用组件。v2.5.0(2026 年 3 月发布)已支持更丰富的 AI 交互模式。

Ant Design Pro

企业级中后台前端解决方案,包含:

  • Ant Design Pro V6:2026 年 5 月发布,构建速度提升 42%,内置 AI 助手
  • ProComponents:面向业务场景的高级组件
  • Umi:底层企业级前端框架

适用场景

  • 企业级中后台系统:Ant Design 最核心的使用场景。CRM、ERP、CMS、OA 等管理系统的首选方案
  • 数据密集型应用:强大的 Table、Tree、Form 组件,支持虚拟滚动、复杂表单校验、大数据量展示
  • 快速原型开发:配合 ProComponents 可以在数小时内搭建出完整的中后台原型
  • 多语言国际化项目:内置 70+ 语言包,国际化开箱即用
  • 需要暗色模式的 SaaS 产品:内置暗色主题算法,一行代码切换
  • 设计系统驱动的项目:Design Token 体系支持从设计到代码的一致性传递
  • 大规模团队协作:完善的 TypeScript 类型和 API 文档,降低协作成本

开发与工程化

开发流程

# 使用 Ant Design Pro 脚手架创建项目
npx create-umi@latest --template ant-design-pro
 
# 或使用 Umi Max
npx create-umi@latest --template antd
 
# 开发服务器
pnpm dev
 
# 构建
pnpm build
 
# 代码检查
pnpm lint

按需加载

v6 默认支持 Tree Shaking,无需额外配置 babel-plugin-import:

// 直接按需引入即可,构建工具会自动进行 Tree Shaking
import { Button, DatePicker } from 'antd';

自定义主题工程化

// theme.ts - 集中管理主题配置
import type { ThemeConfig } from 'antd';
import { theme } from 'antd';
 
export const customTheme: ThemeConfig = {
  token: {
    colorPrimary: '#1677ff',
    borderRadius: 6,
    fontSize: 14,
  },
  components: {
    Button: {
      colorPrimary: '#00b96b',
      algorithm: true, // 启用算法
    },
    Table: {
      headerBg: '#fafafa',
    },
  },
};

CI/CD 集成

# GitHub Actions 示例
name: Build & Deploy
on: [push]
jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: pnpm/action-setup@v4
      - uses: actions/setup-node@v4
        with:
          node-version: 22
          cache: 'pnpm'
      - run: pnpm install
      - run: pnpm typecheck
      - run: pnpm lint
      - run: pnpm build

性能与安全

性能特点

  • Tree Shaking:v6 完全支持 ES Module Tree Shaking,未使用组件不会被打包
  • 开发渲染性能:v6 优化了开发环境渲染,性能提升约 40%
  • 虚拟滚动:Table、Select、Tree 等大列表组件支持虚拟滚动
  • CSS-in-JS 缓存:样式计算结果会被缓存,避免重复计算
  • SSR 优化:支持 @layer CSS 层级,避免样式冲突

性能优化建议

// 1. 使用动态导入减少首屏体积
const HeavyTable = React.lazy(() => import('./HeavyTable'));
 
// 2. Table 使用虚拟滚动
<Table
  virtual
  scroll={{ y: 600 }}
  dataSource={largeDataSet}
/>
 
// 3. Select 大列表优化
<Select
  showSearch
  filterOption={(input, option) =>
    (option?.label ?? '').toLowerCase().includes(input.toLowerCase())
  }
  options={thousandsOfOptions}
/>
 
// 4. 使用 shouldUpdate 减少不必要的 Form 重渲染
<Form.Item shouldUpdate={(prev, curr) => prev.type !== curr.type}>
  {({ getFieldValue }) => /* 条件渲染 */}
</Form.Item>

安全注意事项

  • XSS 防护:默认不执行 HTML 字符串,使用 dangerouslySetInnerHTML 时需手动过滤
  • 依赖更新:及时更新 dayjs 等依赖,修复已知漏洞
  • CSP 兼容:CSS-in-JS 使用的内联样式需要配置合适的 Content Security Policy

已知性能瓶颈

  • 超大数据量表单(500+ 字段)需要配合 Form.List 和动态渲染策略
  • CSS-in-JS 首次渲染开销高于纯 CSS 方案,SSR 可缓解
  • 动态主题切换时存在短暂的样式重算开销

技术对比

特性Ant Design v6MUI v9Chakra UI v3Mantine v9
定位企业级中后台Material Design 全场景可访问性优先现代通用组件库
GitHub Stars98.6k98.5k~40k~30k
组件数量70+60+50+100+(含 hooks)
样式方案CSS-in-JS(内置)Emotion / zero-runtime(实验)Panda CSS(构建时)CSS Modules
TypeScript原生原生原生原生
React 19 支持原生支持支持支持要求 19.2+
Design Token三层令牌体系Theme + sx propToken + CSS 变量CSS 变量 + 令牌
国际化70+ 语言包内置多语言社区方案社区方案社区方案
暗色模式内置算法内置需 next-themes内置
移动端antd-mobile无官方无官方无官方
Pro 组件ProComponents 生态Data Grid(付费)Park UI社区模板
适合场景中后台系统全场景通用 Web通用 Web
Bundle Size中等(Tree Shake 后较小)较大较小中等

选型建议

  • 选 Ant Design:企业级中后台、需要 ProComponents、中文/亚洲市场、快速搭建管理系统
  • 选 MUI:面向国际市场、需要 Material Design 风格、需要 Data Grid 等高级付费组件
  • 选 Chakra UI:重视可访问性、偏好灵活组合、需要多框架支持(React/Vue/Solid)
  • 选 Mantine:需要丰富的 hooks、偏好轻量方案、需要日程调度组件

最佳实践

生产环境建议

  1. 统一主题管理:将主题配置集中在 theme.ts 中,通过 ConfigProvider 注入,避免散落的样式覆盖
  2. 使用 ProComponents:表格、表单等复杂场景优先使用 ProTable、ProForm,减少重复代码
  3. 合理拆分路由:使用动态导入按路由拆分,减少首屏加载体积
  4. Day.js 插件管理:只引入需要的 Day.js 插件,避免全量引入
// 推荐:集中管理 Day.js 插件
import dayjs from 'dayjs';
import 'dayjs/locale/zh-cn';
import relativeTime from 'dayjs/plugin/relativeTime';
dayjs.extend(relativeTime);
  1. TypeScript 严格模式:开启 strict: true,充分利用 antd 类型推导

常见陷阱

// ❌ 错误:在循环中创建主题对象
{items.map(item => (
  <ConfigProvider theme={{ token: { colorPrimary: item.color } }}>
    <Child />
  </ConfigProvider>
))}
 
// ✅ 正确:提取主题对象或使用 useMemo
const themes = useMemo(
  () => items.map(item => ({ token: { colorPrimary: item.color } })),
  [items]
);
// ❌ 错误:Form.Item 不设置 name 导致无法收集值
<Form.Item label="用户名">
  <Input />
</Form.Item>
 
// ✅ 正确:设置 name 属性
<Form.Item label="用户名" name="username" rules={[{ required: true }]}>
  <Input />
</Form.Item>

推荐模式

// 表格 + 搜索 + 分页的最佳实践(使用 ProTable)
import { ProTable } from '@ant-design/pro-components';
import type { ProColumns } from '@ant-design/pro-components';
 
const columns: ProColumns<User>[] = [
  { title: '姓名', dataIndex: 'name', valueType: 'text' },
  { title: '状态', dataIndex: 'status', valueType: 'select', valueEnum: { ... } },
  { title: '创建时间', dataIndex: 'createdAt', valueType: 'dateTime', hideInSearch: true },
];
 
<ProTable
  columns={columns}
  request={async (params) => {
    const { data, total } = await fetchUsers(params);
    return { data, total, success: true };
  }}
  rowKey="id"
  search={{ labelWidth: 'auto' }}
  pagination={{ pageSize: 20 }}
/>

技术局限与边界

已知限制

  1. 仅支持现代浏览器:v6 不再支持 IE 11 和旧版浏览器,需要现代浏览器(Chrome 90+、Firefox 88+、Safari 15+、Edge 90+)
  2. React 版本要求:需要 React 18+,不支持 React 17 及以下版本
  3. 中后台定位:组件设计偏重后台管理场景,对于营销页面、创意网站等场景可能显得过于「严肃」
  4. CSS-in-JS 开销:虽然 v6 优化了性能,但 CSS-in-JS 方案在首次渲染时仍有额外开销
  5. Bundle 体积:即使 Tree Shaking,核心组件打包后仍有一定体积(约 200-300KB gzipped,取决于组件数量)
  6. 自定义灵活性有限:相比 Chakra UI 的组合式 API,Ant Design 的组件结构更加固化

迁移注意事项

从 v5 迁移到 v6 时需注意:

  • 先升级到最新 v5 版本,处理所有废弃警告
  • 确认项目运行在 React 18+ 环境
  • 移除对 IE 浏览器的兼容代码
  • 检查是否有直接使用 rc-* 底层组件的代码
  • 参考 官方迁移指南 逐步替换

学习资源

官方文档

教程

社区资源

2026 年现状

最新版本

  • Ant Design v6.5.0(2026 年 6 月 27 日):当前最新稳定版
  • Ant Design Pro V6(2026 年 5 月):构建速度提升 42%,新增 AI 助手
  • Ant Design X v2.5.0(2026 年 3 月):AI 组件持续迭代

发展趋势

  1. AI 能力深化:Ant Design X 持续增强,为 AI 对话、Agent 交互等场景提供专业组件
  2. React 19+ 深度适配:充分利用 React 19 的 Concurrent Features、Server Components 等能力
  3. Design Token 标准化:推动设计令牌在设计工具与代码间的一致性传递
  4. 性能持续优化:在保持功能完备的前提下持续减少运行时开销
  5. Ant Design CLI:新一代脚手架工具,提升项目初始化效率

社区活跃度

  • GitHub Stars:98,600+
  • npm 周下载量:2,000,000+
  • GitHub Contributors:900+
  • 活跃 Issue 和 PR 处理
  • 稳定的双周发布节奏
  • 全球开发者社区持续贡献

未来路线图

  • 持续完善 Ant Design X 的 AI 组件
  • 探索 React Server Components 的深度集成
  • 增强 Design Token 与 Figma Variables 的双向同步
  • 优化无障碍体验和国际化支持
  • 社区生态工具链完善(CLI、模板、插件)