动手试试
最简用法
Upload.jsx<ProgressBar value={progress} max={100} />
<ProgressRing value={progress} size={96}>{progress}%</ProgressRing>
<ProgressBar value={null} /> {}
它替你处理的事
- 值会被限制在
0…max 范围内,null 显示不确定的扫动条或旋转弧线。 - 动效进行中的新值会带着速度继续。
- 始终是一条连续的线或弧,绝不会跳格。
- 指定了
duration 的弹簧会恰好在那一刻结束。
Props
ProgressBar
| Prop | 类型 | 默认值 | 说明 |
|---|
value | number | null | | 从 0 到 max 的进度;null 表示不确定。 |
|---|
max | number | 100 | 表示完成的值。 |
|---|
color | string | 'currentColor' | 填充颜色。 |
|---|
trackColor | string | '#e7ece9' | 轨道颜色。 |
|---|
thickness | number | 8 | 线条粗细,单位为像素。 |
|---|
direction | 'ltr' | 'rtl' | 'ltr' | 从左(ltr)或从右(rtl)开始填充。 |
|---|
transition | Transition | spring | 时间曲线 { duration, easing } 或弹簧 { tempo: 'spring', spring }。弹簧被打断时会保留动量。 |
|---|
ProgressRing
| Prop | 类型 | 默认值 | 说明 |
|---|
value | number | null | | 从 0 到 max 的进度;null 表示不确定。 |
|---|
max | number | 100 | 表示完成的值。 |
|---|
size | number | 96 | 直径,单位为像素。 |
|---|
thickness | number | 8 | 圆环粗细,单位为像素。 |
|---|
color | string | 'currentColor' | 弧线颜色。 |
|---|
trackColor | string | '#e7ece9' | 轨道颜色。 |
|---|
children | ReactNode | | 显示在中间的标签。 |
|---|
transition | Transition | spring | 时间曲线 { duration, easing } 或弹簧 { tempo: 'spring', spring }。弹簧被打断时会保留动量。 |
|---|
其他 props 会传给渲染的元素,所以 className、style 和事件处理函数照常可用。