ConfigProvider 全局配置
全局配置的注入入口,统一管理包裹子树的 locale / size / theme / config / direction / z-index / disabled。组件读取顺序:自身属性 > config-provider > 全局默认。
Locale 注入
config-provider 的 locale 就近优先于全局 setLocale():包裹内的组件用注入的 locale 翻译内置文案。
Locale 切换
Size 注入
包裹内组件的 size 未显式设置时走注入值;自身显式设置了 size 的组件仍以自身为准。size 支持 xs / small / medium(默认)/ large / xl 五档。
Size 注入
Theme 注入
config-provider 的 theme 会写入 data-theme 到自身,包裹的子树(含 Shadow DOM)继承对应主题 token。
Theme 注入
Config JSON 组件级默认配置
config 是组件级默认配置的通用通道:以 JSON 声明任意组件的默认属性(如 {"oas-button":{"variant":"outlined"}}),组件自身未显式设置时读取注入值。键格式为组件 tag + 属性名,就近读取、自身显式属性优先。
Config JSON 注入 button variant
Direction 全局方向
direction 设置时写入宿主 dir 属性:CSS direction 沿继承穿透 light/shadow 子树,组件(如 scroll-area 的 RTL 横向滚动转译)经注入值消费。浮层定位同样按方向镜像:select / combobox / auto-complete / tree-select / date-picker / time-picker / mentions 的 start/end 对齐在 RTL 下翻到书写起点一侧。方向解析顺序为「config-provider > 最近祖先 dir > document.dir > 当前 locale」——ar 语言包标注 dir: 'rtl',切到 ar 即自动 RTL。
Direction 全局方向
z-index 浮层起始值
z-index 在宿主写入 --oas-z-index-base:子树内所有浮层(消息 / 通知 / 下拉 / 弹层等)在该起始值上按各自层级偏移叠加(calc(var(--oas-z-index-base, 0) + var(--oas-z-X, <层默认值>)))——整体抬升的同时保持层间顺序(tooltip 仍在 modal 之上)。
z-index 浮层起始值
全局禁用
disabled 开启后,子树内已接入禁用注入的表单族控件(button / input / select / checkbox / switch 等)在未显式设置 disabled 时统一禁用;控件自身显式 disabled 恒禁(不冲突)。两个豁免通道:
disabled-skip(组件级):单个控件逃逸全局禁用(如禁用表单区里仍可点的帮助链接 / 重置按钮)——逃逸语义即「不读注入」disabledExempt(provider 级):config JSON 顶层声明{"disabledExempt":["oas-button"]},按 tag 整类豁免
优先级:组件显式 disabled > disabled-skip 豁免 > disabledExempt 整类豁免 > provider 注入 disabled。disabled-skip 为全局约定属性(非组件自身 API,不进属性表)。导航/链接类组件(link / menu / breadcrumb 等)暂不接注入消费——它们天然豁免全局禁用,宿主也可按需用 disabledExempt 显式声明其他整类豁免。
全局禁用
disabled-skip 单个逃逸
disabledExempt 整类豁免
就近优先
内层 config-provider 覆盖外层:内层包裹的组件用内层配置,外层(未再嵌套)的组件用外层配置。
就近优先
API
oas-config-provider
属性
| 属性 | 说明 | 类型 | 默认值 |
|---|---|---|---|
config | 组件级默认配置 JSON(如 {"oas-button":{"variant":"outlined"}});组件经就近读取 [tag][key],自身显式属性优先;顶层键 disabledExempt(tag 数组)整类豁免全局禁用;非法 JSON 忽略 + dev 告警 | string | — |
direction | 全局方向注入(ltr/rtl),设置时写入宿主 dir 属性(CSS direction 继承穿透 light/shadow 子树);组件可经 injectValue('direction') 消费;非法值回落 ltr + dev 告警 | string | — |
disabled | 全局禁用:子树内已接入注入的表单族控件未显式设置 disabled 时统一禁用;组件级逃逸用 disabled-skip 属性、整类逃逸用 config JSON 顶层 disabledExempt | — | — |
locale | 包裹子树的内置文案语言(需已注册),就近优先于全局 setLocale() | — | — |
size | 包裹组件的默认尺寸,组件自身未显式设置时生效 | — | — |
theme | 包裹子树的主题,写入 data-theme | — | — |
z-index | 浮层全局起始值(正整数);写入宿主 --oas-z-index-base,子树内浮层 z-index 统一抬升;非法值忽略 + dev 告警 | string | — |
插槽
| 名称 | 说明 |
|---|---|
| 默认 | 被提供配置的子树内容 |
- 组件读取顺序:自身属性 > config-provider > 全局默认。
locale需先registerLocale()注册语言包,未注册时回退全局 translator。