zent
Version:
一套前端设计语言和基于React的实现
37 lines (28 loc) • 2.87 kB
Markdown
---
title: ClampLines
subtitle: 多行文本裁剪
path: component/clamp-lines
group: 信息展示
---
## ClampLines
限制文本最大行数。不建议在一个页面上大量使用,会有性能问题。
- 自适应容器大小需要 `ResizeObserver` 支持,部分老浏览器需要自行引入 polyfill。
- 当 `ResizeObserver` 不存在时,该组件仅能处理由于窗口大小变化而导致的容器大小变化。
### API
| 参数 | 说明 | 类型 | 默认值 | 备选值 |
| --------- | ---------------------------------- | ---------------------------------- | --------------- | -------------------- |
| text | 初始文本 | `string` | `''` | |
| lines | 显示文本的最大行数 | `number` | `2` | |
| ellipsis | 省略符号的样式 | string | `'...'` | |
| showPop | 是否显示 Pop 提示 | `boolean` | `true` | |
| popWidth | pop 的宽度 | `number` | `250` | |
| trigger | Pop 的触发方式 | `string` | `'hover'` | `'click'`, `'focus'` |
| renderPop | 自定义 Pop content 的显示 | `function` | `identity` | |
| resizable | 是否响应容器的大小变化 | `boolean` | `false` | |
| mode | 算法选择:可选性能或者准确性 | `'performance'` \| `'correctness'` | `'performance'` | `'correctness'` |
| extra | 额外节点,用于显示`更多`一类的操作 | `ReactElement` | `null` | |
| className | 自定义额外类名 | `string` | `''` | |
#### 关于算法
内置两种算法
- `performance` 默认值;算法以性能优先,极端场景下可能出现截断位置错误,导致实际展示的行数和设置的不一致。但是,实际使用场景下很少会出现截断位置不准确的情况。导致截断错误的场景一般出现在大段中英文、以及 emoji 等字符混排的情况,同语种场景下基本不可能出现问题。
- `correctness` 算法确保截断结果准确,但是性能相比 `performance` 模式会有数量级的差异。几百个字符的场景下,相比 `performance` 算法就会有肉眼可见的延迟。所以请慎用该算法。