--- localeCode: zh-CN order: 72 category: 反馈类 title: Progress 进度条 icon: doc-progress width: 60% brief: 用于展示用户操作的当前进度和状态,一般在操作耗时较长时使用。也可用来表示任务/对象的完成度 --- ## 代码演示 ### 如何引入 ```jsx import import { Progress } from '@douyinfe/semi-ui'; ``` ### 标准的进度条 通过`stroke`属性来控制进度条的填充色 通过`percent`属性控制已完成的进度 通过`size`属性控制进度条尺寸 通过`aria-label`说明进度条具体代表含义 如果`size`预设的尺寸不满足,可以通过`style`传入 height 自定义进度条高度 ```jsx live=true import React from 'react'; import { Progress } from '@douyinfe/semi-ui'; () => (





); ``` ### 展示百分比文本 通过`showInfo`控制是否展示百分比数字,可以通过`format`格式化展示文本 ```jsx live=true import React from 'react'; import { Progress } from '@douyinfe/semi-ui'; () => (



percent * 10 + '‰'} aria-label="disk usage" />
); ``` ### 垂直的进度条 设置`direction='vertical'`,展示垂直进度条,可以通过`style`传入 width 控制进度条宽度 ```jsx live=true import React from 'react'; import { Progress } from '@douyinfe/semi-ui'; () => (
); ``` ### 环形进度条 将 type 设为`circle`,进度条将会展示成环状。进度条默认尺寸为 72 x 72 ```jsx live=true import React from 'react'; import { Progress } from '@douyinfe/semi-ui'; () => (
); ``` 你可以通过修改`width`来控制环形进度条的大小 ```jsx live=true import React from 'react'; import { Progress } from '@douyinfe/semi-ui'; () => (
); ``` ### 小号的环形进度条 小号进度条默认尺寸为 24 x 24 ```jsx live=true import React from 'react'; import { Progress } from '@douyinfe/semi-ui'; () => ( ); ``` ### 动态改变进度 ```jsx live=true import React, { useState } from 'react'; import { Progress, Button } from '@douyinfe/semi-ui'; import { IconChevronLeft, IconChevronRight } from '@douyinfe/semi-icons'; () => { const [percent, setPercent] = useState(40); return ( <>
); }; ``` ```jsx live=true import React, { useState } from 'react'; import { Progress, Button } from '@douyinfe/semi-ui'; import { IconChevronLeft, IconChevronRight } from '@douyinfe/semi-icons'; () => { const [cirPerc, setCirPerc] = useState(40); return (
); }; ``` ### 自定义中心文字内容 你可以通过传入 `format` 函数自定义中心文字,`format` 的入参为当前百分比 如果不需要中心文本内容,你可以将 `showInfo` 设为 false,或者在 `format` 中直接返回空字符串 ```jsx live=true import React from 'react'; import { Progress } from '@douyinfe/semi-ui'; () => ( per + 'Days'} style={{ margin: 10 }} aria-label="disk usage" /> 'Done'} style={{ margin: 10 }} aria-label="disk usage" /> ); ``` ### 圆角/方角边缘 通过 strokeLinecap 属性,你可以控制环形进度条边缘形状 ```jsx live=true import React from 'react'; import { Progress } from '@douyinfe/semi-ui'; () => ( ); ``` ### 自定义进度条颜色 可通过设置 `stroke` 属性,自定义具体 `percent` 的颜色 ```jsx live=true import React, { useState } from 'react'; import { Progress, Button } from '@douyinfe/semi-ui'; import { IconChevronLeft, IconChevronRight } from '@douyinfe/semi-icons'; () => { const [percent, setPercent] = useState(10); const strokeArr = [ { percent: 20, color: 'red' }, { percent: 40, color: 'orange-9' }, { percent: 60, color: 'light-green-8' }, { percent: 80, color: 'hsla(125, 50%, 46% / 1)' } ]; return ( <>