Skip to content

ConfigProvider 全局配置

为内部所有 ccui 组件提供统一的全局配置:尺寸、方向、品牌色、语言、类名前缀。

何时使用

  • 应用根部统一覆盖:默认尺寸、文字方向、品牌色 token。
  • 多语言场景下注入语言包。
  • 与外部库共存时需要换 prefixCls 避免类名冲突。

自定义品牌色

theme.token 接收 camelCase 形式的 token(如 colorPrimary),ConfigProvider 会把它映射为对应 CSS 变量并下传到子组件。

同时调多个 token

colorPrimary / borderRadius / colorError 等都可以一起传。

全局组件尺寸

component-size 让作用域内的 c-button / c-input 等组件默认走对应尺寸(仍可被组件自身的 size 覆盖)。

文字方向

direction="rtl" 让内部组件在阿拉伯语 / 希伯来语等场景下从右向左排布。

多个 ConfigProvider 嵌套

后代的 ConfigProvider 会覆盖外层配置;这样可以在页面局部使用不同主题。

切换语言

传入 locale 把内部组件的默认文案换成对应语言。ccui 内置 zhCN / enUS / jaJP / koKR 四个语言包,可从 @vaebe/ccui 直接导出;未覆盖的 namespace 会自动回退到 zhCN。切换 locale 时全局 dayjs.locale() 也会同步切换。

下面用 Pagination 演示四语言切换:

DatePicker / TimePicker / RangePicker / Calendar 的 placeholder、周名、面板标题、按钮文案同样会跟着 locale 切换:

在组件内读取配置

业务组件用组合 API useConfig 读当前生效的配置。

ts
import { useConfig } from '@vaebe/ccui'

const cfg = useConfig()
// cfg.componentSize / cfg.direction / cfg.locale / cfg.theme / cfg.prefixCls

API

Props

参数类型默认值说明
prefixClsstring'ccui'类名前缀
componentSize'small' | 'middle' | 'large''middle'默认组件尺寸
direction'ltr' | 'rtl''ltr'文字方向
localeLocale语言包
theme{ token, algorithm }主题配置:token 用 camelCase(colorPrimary / borderRadius 等),自动映射为 CSS 变量并下传
iconPrefixClsstring'ccui-icon'图标类名前缀

useConfig

返回当前生效的 ConfigContext{ prefixCls, componentSize, direction, locale, theme, iconPrefixCls }

Released under the MIT License.