Ant Design
企业级 React UI 组件库,全球第二受欢迎的 React UI 框架,为中后台系统提供开箱即用的完整解决方案。
蚂蚁集团开发的企业级 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(企业级脚手架),可以在极短时间内搭建出功能完备的中后台系统。
基本信息
- 官网:https://ant.design/
- GitHub:https://github.com/ant-design/ant-design
- 主要维护者:蚂蚁集团(Ant Group)体验技术部
- npm 周下载量:约 2,000,000+
- TypeScript 支持:原生支持,完全使用 TypeScript 编写
快速上手
安装
# 使用 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 分为三层:
- Seed Token(种子令牌):最基础的设计变量,如
colorPrimary、borderRadius、fontFamily等。修改种子令牌即可自动衍生出整套色板。 - Map Token(映射令牌):由种子令牌通过算法自动派生的中间变量,用于控制渐变色、背景色、边框色等。
- 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/icons | 200+ 官方图标 |
@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 优化:支持
@layerCSS 层级,避免样式冲突
性能优化建议
// 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 v6 | MUI v9 | Chakra UI v3 | Mantine v9 |
|---|---|---|---|---|
| 定位 | 企业级中后台 | Material Design 全场景 | 可访问性优先 | 现代通用组件库 |
| GitHub Stars | 98.6k | 98.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 prop | Token + 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、偏好轻量方案、需要日程调度组件
最佳实践
生产环境建议
- 统一主题管理:将主题配置集中在
theme.ts中,通过ConfigProvider注入,避免散落的样式覆盖 - 使用 ProComponents:表格、表单等复杂场景优先使用 ProTable、ProForm,减少重复代码
- 合理拆分路由:使用动态导入按路由拆分,减少首屏加载体积
- Day.js 插件管理:只引入需要的 Day.js 插件,避免全量引入
// 推荐:集中管理 Day.js 插件
import dayjs from 'dayjs';
import 'dayjs/locale/zh-cn';
import relativeTime from 'dayjs/plugin/relativeTime';
dayjs.extend(relativeTime);- 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 }}
/>技术局限与边界
已知限制
- 仅支持现代浏览器:v6 不再支持 IE 11 和旧版浏览器,需要现代浏览器(Chrome 90+、Firefox 88+、Safari 15+、Edge 90+)
- React 版本要求:需要 React 18+,不支持 React 17 及以下版本
- 中后台定位:组件设计偏重后台管理场景,对于营销页面、创意网站等场景可能显得过于「严肃」
- CSS-in-JS 开销:虽然 v6 优化了性能,但 CSS-in-JS 方案在首次渲染时仍有额外开销
- Bundle 体积:即使 Tree Shaking,核心组件打包后仍有一定体积(约 200-300KB gzipped,取决于组件数量)
- 自定义灵活性有限:相比 Chakra UI 的组合式 API,Ant Design 的组件结构更加固化
迁移注意事项
从 v5 迁移到 v6 时需注意:
- 先升级到最新 v5 版本,处理所有废弃警告
- 确认项目运行在 React 18+ 环境
- 移除对 IE 浏览器的兼容代码
- 检查是否有直接使用
rc-*底层组件的代码 - 参考 官方迁移指南 逐步替换
学习资源
官方文档
- Ant Design 官网 - 组件文档与示例
- Ant Design v6 迁移指南
- Ant Design Pro - 企业级脚手架文档
- ProComponents 文档
- Design Token 说明
- Ant Design X - AI 组件文档
教程
- Ant Design 官方更新日志 - 跟踪最新变化
- Ant Design Figma 资源 - 设计师协作资源
- Ant Design 实战教程 - 官方中文教程
社区资源
- GitHub Discussions - 讨论与问答
- GitHub Issues - Bug 报告与功能建议
- Stack Overflow (antd tag) - 技术问答
- SegmentFault - 中文技术社区
- 掘金 (Ant Design 标签) - 中文社区教程
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 组件持续迭代
发展趋势
- AI 能力深化:Ant Design X 持续增强,为 AI 对话、Agent 交互等场景提供专业组件
- React 19+ 深度适配:充分利用 React 19 的 Concurrent Features、Server Components 等能力
- Design Token 标准化:推动设计令牌在设计工具与代码间的一致性传递
- 性能持续优化:在保持功能完备的前提下持续减少运行时开销
- 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、模板、插件)