|
| 1 | +--- |
| 2 | +title: genStyleUtils |
| 3 | +nav: |
| 4 | + title: API |
| 5 | + path: /genStyleUtils |
| 6 | +--- |
| 7 | +# `genStyleUtils` 使用文档 |
| 8 | + |
| 9 | +`genStyleUtils` 提供了用于在 `antd` 生态开发中,生成和管理样式的实用工具函数集。 |
| 10 | + |
| 11 | +## 入参介绍 |
| 12 | + |
| 13 | +### `genStyleUtils<CompTokenMap>(getConfigProviderContext?, getThemeProviderContext?)` |
| 14 | +- `config`: 可选,配置 |
| 15 | + - `useCSP`: 使用 CSP 的钩子函数 |
| 16 | + - `usePrefix`: 使用样式前缀的钩子函数 |
| 17 | + - `useToken`: 使用 token 的钩子函数 |
| 18 | +- `CompTokenMap`: 范型参数,表示组件 token 映射 |
| 19 | +- `DesignTokenn`: 范型参数,表示设计 token |
| 20 | +- `AliasToken`: 范型参数,表示别名 token |
| 21 | +> 使用建议:为了更好的获得 TS 类型支持,建议您在使用 `genStyleUtils` 的时候传入范型参数 `CompTokenMap` `DesignTokenn` `AliasToken` |
| 22 | +
|
| 23 | +## 如何使用 |
| 24 | +``` typescript |
| 25 | +import React from 'react'; |
| 26 | +import { genStyleUtils } from '@ant-design/cssinjs-utils'; |
| 27 | + |
| 28 | +// Step1: 定义组件 Token 映射 |
| 29 | +interface YourCompTokenMap { |
| 30 | + Button?: {}; |
| 31 | + Avatar?: {}; |
| 32 | + // ... |
| 33 | +} |
| 34 | + |
| 35 | +// Step2: 定义设计 Token |
| 36 | +interface YourDesignTokenn { |
| 37 | + color?: string; |
| 38 | +} |
| 39 | + |
| 40 | +// Step3: 定义别名 Token |
| 41 | +interface YourAliasToken { |
| 42 | + colorFillContentHover?: string; |
| 43 | +} |
| 44 | + |
| 45 | +// Step4: 使用 `genStyleUtils` 生成工具函数集 |
| 46 | +const { |
| 47 | + genStyleHooks, |
| 48 | + genComponentStyleHook, |
| 49 | + genSubStyleComponent, |
| 50 | +} = genStyleUtils<YourCompTokenMap, YourDesignTokenn, YourAliasToken>({ |
| 51 | + useCSP: () => { |
| 52 | + // ... |
| 53 | + }, |
| 54 | + usePrefix: () => { |
| 55 | + // ... |
| 56 | + }, |
| 57 | + useToken: () => { |
| 58 | + // ... |
| 59 | + }, |
| 60 | +}); |
| 61 | +``` |
| 62 | + |
| 63 | +## 工具介绍 |
| 64 | + |
| 65 | +### `genStyleHooks(component, styleFn, getDefaultToken?, options?)` |
| 66 | + |
| 67 | +- `component`: 组件名称 `ComponentName` 或组件名称数组 `[ComponentName, ComponentName]`。 |
| 68 | +- `styleFn`: 根据标记和样式信息生成 CSS 插值的函数。 |
| 69 | +- `getDefaultToken`: 可选,用于检索默认标记的函数或值。 |
| 70 | +- `options`: 可选,包含额外的配置选项如 `resetStyle`、`resetFont`、`deprecatedTokens`、`clientOnly` 等。 |
| 71 | + |
| 72 | +### `genComponentStyleHook(component, styleFn, getDefaultToken?, options?)` |
| 73 | + |
| 74 | +- `component`: 组件名称 `ComponentName` 或组件名称数组 `[ComponentName, ComponentName]`。 |
| 75 | +- `styleFn`: 根据标记和样式信息生成 CSS 插值的函数。 |
| 76 | +- `getDefaultToken`: 可选,用于检索默认标记的函数或值。 |
| 77 | +- `options`: 可选,包含额外的配置选项如 `resetStyle`、`resetFont`、`deprecatedTokens`、`clientOnly` 等。 |
| 78 | + |
| 79 | +### `genSubStyleComponent(component, styleFn, getDefaultToken?, options?)` |
| 80 | + |
| 81 | +- `component`: 组件名称 `ComponentName` 或组件名称数组 `[ComponentName, ComponentName]`。 |
| 82 | +- `styleFn`: 根据标记和样式信息生成 CSS 插值的函数。 |
| 83 | +- `getDefaultToken`: 可选,用于检索默认标记的函数或值。 |
| 84 | +- `options`: 可选,包含额外的配置选项如 `resetStyle`、`resetFont`、`deprecatedTokens`、`clientOnly` 等。 |
| 85 | + |
| 86 | +## 示例用法 |
| 87 | + |
| 88 | +### `genStyleHooks` |
| 89 | + |
| 90 | +```javascript |
| 91 | +const useStyle = genStyleHooks('Button', styleFn, getDefaultToken, { resetStyle: true }); |
| 92 | +const [wrapStyle, hashId] = useStyle('button'); |
| 93 | +``` |
| 94 | + |
| 95 | +### `genComponentStyleHook` |
| 96 | + |
| 97 | +```javascript |
| 98 | +const useStyle = genComponentStyleHook('Button', styleFn, getDefaultToken, { clientOnly: true }); |
| 99 | +const [wrapStyle, hashId] = useStyle('button'); |
| 100 | +``` |
| 101 | + |
| 102 | +### `genSubStyleComponent` |
| 103 | + |
| 104 | +```javascript |
| 105 | +const SubButtonStyle = genSubStyleComponent('Button', styleFn, getDefaultToken, { resetFont: true }); |
| 106 | + |
| 107 | +() => <SubButtonStyle prefixCls="sub-button" />; |
| 108 | +``` |
0 commit comments