ConfigProvider 全局配置 #

概述 #

ConfigProvider 是 Ant Design 的全局配置组件,用于配置国际化、主题、组件默认属性等全局设置。

基础用法 #

国际化 #

tsx
import { ConfigProvider } from 'antd';
import zhCN from 'antd/locale/zh_CN';

<ConfigProvider locale={zhCN}>
  <App />
</ConfigProvider>

主题配置 #

tsx
import { ConfigProvider } from 'antd';

<ConfigProvider
  theme={{
    token: {
      colorPrimary: '#00b96b',
    },
  }}
>
  <App />
</ConfigProvider>

全局配置项 #

组件尺寸 #

tsx
import { ConfigProvider, Button, Input, Select } from 'antd';

<ConfigProvider componentSize="small">
  <Button type="primary">按钮</Button>
  <Input placeholder="输入框" />
  <Select style={{ width: 100 }} />
</ConfigProvider>

禁用动画 #

tsx
import { ConfigProvider } from 'antd';

<ConfigProvider
  button={{
    className: 'my-button',
  }}
>
  <App />
</ConfigProvider>

空状态 #

tsx
import { ConfigProvider, Empty, Table } from 'antd';

const customizeRenderEmpty = () => (
  <div style={{ textAlign: 'center' }}>
    <Empty description="暂无数据" />
  </div>
);

<ConfigProvider renderEmpty={customizeRenderEmpty}>
  <Table dataSource={[]} columns={columns} />
</ConfigProvider>

虚拟滚动 #

tsx
import { ConfigProvider, Select } from 'antd';

<ConfigProvider virtual={true}>
  <Select style={{ width: 200 }} options={largeOptions} />
</ConfigProvider>

组件默认属性 #

tsx
import { ConfigProvider, Button, Input } from 'antd';

<ConfigProvider
  button={{
    type: 'primary',
  }}
  input={{
    allowClear: true,
  }}
>
  <Button>默认主要按钮</Button>
  <Input placeholder="默认可清除" />
</ConfigProvider>

弹窗容器 #

tsx
import { ConfigProvider } from 'antd';

<ConfigProvider
  getPopupContainer={(node) => {
    if (node) {
      return node.parentNode;
    }
    return document.body;
  }}
>
  <App />
</ConfigProvider>

前缀和后缀 #

tsx
import { ConfigProvider, Button } from 'antd';

<ConfigProvider
  prefixCls="custom"
>
  <Button>自定义前缀</Button>
</ConfigProvider>

API #

ConfigProvider #

属性 说明 类型 默认值
autoInsertSpaceInButton 按钮中文字间自动插入空格 boolean true
componentDisabled 全局禁用 boolean -
componentSize 组件尺寸 small | middle | large -
csp CSP 配置 -
direction 文本方向 ltr | rtl ltr
dropdownMatchSelectWidth 下拉菜单宽度匹配 boolean | number true
form Form 全局配置 -
getPopupContainer 弹出框挂载容器 (node) => HTMLElement -
getTargetContainer 滚动容器 () => HTMLElement -
iconPrefixCls 图标前缀 string anticon
input Input 全局配置 -
locale 语言包 object -
pagination 分页配置 -
popupMatchSelectWidth 下拉菜单宽度匹配 boolean | number -
prefixCls 样式前缀 string ant
renderEmpty 空状态渲染 (componentName) => ReactNode -
space Space 配置 -
table Table 配置 -
theme 主题配置 ThemeConfig -
virtual 虚拟滚动 boolean -
warning 警告配置 -

组件配置 #

tsx
<ConfigProvider
  button={{
    className: 'my-button',
    style: { borderRadius: 4 },
  }}
  input={{
    autoComplete: 'off',
  }}
  select={{
    showSearch: true,
  }}
  table={{
    showSorterTooltip: false,
  }}
>
  <App />
</ConfigProvider>

最佳实践 #

1. 应用入口配置 #

tsx
import { ConfigProvider } from 'antd';
import zhCN from 'antd/locale/zh_CN';

const App = () => {
  return (
    <ConfigProvider
      locale={zhCN}
      theme={{
        token: {
          colorPrimary: '#1677ff',
        },
      }}
      form={{
        colon: false,
        requiredMark: 'optional',
      }}
      input={{
        autoComplete: 'off',
      }}
    >
      <App />
    </ConfigProvider>
  );
};

2. 局部配置 #

tsx
import { ConfigProvider, Button } from 'antd';

<Card title="默认主题">
  <Button type="primary">默认按钮</Button>
</Card>

<ConfigProvider
  theme={{
    token: {
      colorPrimary: '#00b96b',
    },
  }}
>
  <Card title="自定义主题">
    <Button type="primary">自定义按钮</Button>
  </Card>
</ConfigProvider>

3. 嵌套配置 #

tsx
import { ConfigProvider } from 'antd';

<ConfigProvider theme={{ token: { colorPrimary: '#1677ff' } }}>
  <App>
    <ConfigProvider theme={{ token: { colorPrimary: '#00b96b' } }}>
      <Button type="primary">绿色按钮</Button>
    </ConfigProvider>
  </App>
</ConfigProvider>

下一步 #

接下来学习 项目结构 组件!

最后更新:2026-03-28