Компонент Progress библиотеки Ant Design предназначен для визуализации прогресса выполнения операций. Он поддерживает различные типы отображения, а также настройку стилей, размеров и состояний.
import { Progress } from 'antd';
<Progress percent={70} />;
percent — процент заполнения, принимает значения от 0
до 100.status — состояние прогресса: 'success',
'active', 'exception',
'normal'.strokeWidth — толщина линии.showInfo — отображение процента в виде текста (по
умолчанию true).Пример с изменённой толщиной и цветом:
<Progress percent={50} strokeWidth={12} strokeColor="#52c41a" />
percent.<Progress type="circle" percent={75} />
width — размер окружности.strokeColor — цвет линии.<Progress
type="circle"
percent={80}
strokeColor={{
'0%': '#108ee9',
'100%': '#87d068',
}}
/>
<Progress type="dashboard" percent={60} />
gapDegree — угол “разрыва” в окружности (например,
75 градусов для спидометрного эффекта).gapPosition — положение разрыва: 'top',
'bottom', 'left', 'right'.<Progress type="dashboard" percent={70} gapDegree={90} gapPosition="bottom" />
Компонент поддерживает несколько визуальных состояний:
<Progress percent={50} status="active" />
<Progress percent={50} status="exception" />
<Progress percent={100} status="success" />
strokeColor может быть строкой с цветом или объектом
градиента.success с
отдельным цветом:<Progress
percent={60}
strokeColor="#108ee9"
success={{
percent: 30,
strokeColor: '#52c41a',
}}
/>
size — доступные значения: 'small',
'default', 'large' (для кругового типа
width задаётся вручную).showInfo={false} скрывает процент или иконку
состояния.format:<Progress
percent={75}
format={percent => `${percent} дней`}
/>
Прогресс можно динамически изменять через состояние компонента или пропсы:
import React, { useState, useEffect } from 'react';
import { Progress, Button } from 'antd';
const DynamicProgress = () => {
const [percent, setPercent] = useState(0);
const increase = () => setPercent(prev => (prev < 100 ? prev + 10 : 100));
return (
<>
<Progress percent={percent} />
<Button onCl ick={increase}>Увеличить</Button>
</>
);
};
import { Card, Progress } from 'antd';
<Card title="Задачи">
<Progress percent={40} />
<Progress percent={80} status="active" />
</Card>
width меньше
на мобильных устройствах, чтобы не выходил за границы контейнера.<Progress type="circle" percent={70} width={80} />
status для обозначения состояния операции:
успех, ошибка или активность.format делает отображение прогресса более
информативным, например, в единицах времени или задач.Компонент Progress Ant Design обеспечивает гибкую визуализацию прогресса с возможностью полной кастомизации внешнего вида и поведения, что делает его универсальным инструментом для интерфейсов управления задачами и отображения загрузки.