Progress 进度条组件 #
基本用法 #
jsx
import { Progress } from '@chakra-ui/react'
function Example() {
return <Progress value={60} />
}
进度条颜色 #
jsx
<Progress colorScheme="green" value={60} />
<Progress colorScheme="red" value={60} />
<Progress colorScheme="blue" value={60} />
<Progress colorScheme="orange" value={60} />
进度条尺寸 #
jsx
<Progress size="xs" value={60} />
<Progress size="sm" value={60} />
<Progress size="md" value={60} />
<Progress size="lg" value={60} />
进度条变体 #
jsx
<Progress variant="outline" value={60} />
<Progress hasStripe value={60} />
<Progress hasStripe isAnimated value={60} />
不确定进度 #
jsx
<Progress size="xs" isIndeterminate />
实用示例 #
文件上传进度 #
jsx
function FileUploadProgress({ progress, fileName }) {
return (
<Box>
<HStack justify="space-between" mb={2}>
<Text fontSize="sm">{fileName}</Text>
<Text fontSize="sm" color="gray.500">{progress}%</Text>
</HStack>
<Progress
value={progress}
size="sm"
colorScheme={progress === 100 ? 'green' : 'blue'}
hasStripe
isAnimated
/>
</Box>
)
}
多步骤进度 #
jsx
function StepProgress({ currentStep, totalSteps }) {
const progress = (currentStep / totalSteps) * 100
return (
<Box>
<HStack justify="space-between" mb={2}>
<Text fontSize="sm">步骤 {currentStep} / {totalSteps}</Text>
<Text fontSize="sm" color="gray.500">{Math.round(progress)}%</Text>
</HStack>
<Progress value={progress} size="sm" colorScheme="blue" />
</Box>
)
}
Progress 属性速查表 #
| 属性 | 说明 | 值 |
|---|---|---|
| value | 进度值 | 0-100 |
| max | 最大值 | number |
| size | 尺寸 | xs, sm, md, lg |
| colorScheme | 颜色方案 | blue, green, red… |
| hasStripe | 条纹 | boolean |
| isAnimated | 动画 | boolean |
| isIndeterminate | 不确定 | boolean |
下一步 #
现在你已经掌握了 Progress 组件,接下来学习 Spinner 加载,了解如何展示加载动画!
最后更新:2026-03-28