1.主要的动能点有
- getTargetContainer:
- getPopupContainer:
- prefixCls: 获取类名前缀
- iconPrefixCls: icon前缀
- children: 子组件
- renderEmpty: 内容为空时的渲染
- csp: csp配置
- autoInsertSpaceInButton: 按钮中间文字是否加空格配置
- form: 表单相关配置
- input: input配置
- locale: 语言
- pageHeader:
- componentSize:
- direction: 全局排布方向配置
- space: 全局配置
- virtual: 是否开启虚拟滚动
- dropdownMatchSelectWidth: select选择框的弹窗宽度与trigger宽度是否保持一致
2.向外暴露config方法
- 主题的颜色根据全局变量获取设置css,所以可以全局修改主题 ```css :root { —prefix-primary-color: #fff; }
- 修改统一类名前缀- 修改icon前缀<a name="Q5Nva"></a>#### 3.组装全局Configcomponents/config-provider/index.tsx<a name="lguXc"></a>##### 3.1validateMessages表单默认错误提示模板components/locale/zh_CN.tsx表单默认的校验信息 没有中英版 只是提供一套模板 给表单校验错误提示 可以在组件的实际使用过程中换上多语言。```typescript// 第一层providerchildNode = <RcFormProvider validateMessages={validateMessages}>{children}</RcFormProvider>;
3.2多语言
// 第二层providerif (locale) {childNode = (<LocaleProvider locale={locale} _ANT_MARK__={ANT_MARK}>{childNode}</LocaleProvider>);}
3.3Size监听
components/config-provider/SizeContext.tsx
// Size Providerif (componentSize) {childNode = <SizeContextProvider size={componentSize}>{childNode}</SizeContextProvider>;}
3.4总Config
// 全局配置Provider<ConfigContext.Provider value={memoedConfig}>{childNode}</ConfigContext.Provider>;
3.5结合LocaleReceiver=LocaleConsumer
// 最终输出<LocaleReceiver>{(_, __, legacyLocale) => (<ConfigConsumer>{context => (<ProviderChildrenparentContext={context}legacyLocale={legacyLocale as Locale}{...props}/>)}</ConfigConsumer>)}</LocaleReceiver>
