ProComponents в экосистеме Ant Design представляют собой набор расширенных компонентов, созданных для работы с профессиональными интерфейсами, где требуется управление таблицами, формами, списками и аналитическими панелями с минимальной настройкой и высокой производительностью. Эти компоненты строятся поверх стандартных компонентов Ant Design и добавляют обширный функционал для продвинутого взаимодействия с данными.
Ключевые особенности ProComponents:
Form и предоставляют удобные API для валидации и
передачи данных.ProTable — это основной компонент для работы с таблицами
профессионального уровня. Он сочетает в себе возможности стандартной
Table из Ant Design с расширенной логикой:
dataIndex, title, render
и valueType.id или key.filterType, defaultCollapsed,
labelWidth.request таблица автоматически отправляет параметры запроса
на сервер.editable, позволяя редактировать данные на
месте.import { ProTable } from '@ant-design/pro-components';
import React from 'react';
const columns = [
{
title: 'Имя',
dataIndex: 'name',
valueType: 'text',
},
{
title: 'Возраст',
dataIndex: 'age',
valueType: 'digit',
},
{
title: 'Дата регистрации',
dataIndex: 'createdAt',
valueType: 'dateTime',
},
];
const requestData = async (params) => {
const response = await fetch(`/api/users?${new URLSearchParams(params)}`);
const data = await response.json();
return {
data: data.items,
success: true,
total: data.total,
};
};
const UsersTable = () => (
<ProTable
columns={columns}
request={requestData}
rowKey="id"
search={{ defaultCollapsed: false }}
pagination={{ pageSize: 10 }}
/>
);
export default UsersTable;
ProForm расширяет возможности стандартного
Form Ant Design, добавляя удобство работы с динамическими
формами, встроенной валидацией и поддержкой различных типов полей.
ProFormText — текстовое поле.ProFormSelect — выпадающий список.ProFormDatePicker — выбор даты.ProFormDigit — числовое поле.ProFormSwitch — переключатель boolean.import { ProForm, ProFormText, ProFormSelect } from '@ant-design/pro-components';
const UserForm = () => (
<ProForm
onFin ish={async (values) => {
console.log('Submitted values:', values);
}}
initialValues={{ role: 'user' }}
>
<ProFormText name="name" label="Имя" placeholder="Введите имя" />
<ProFormSelect
name="role"
label="Роль"
options={[
{ label: 'Администратор', value: 'admin' },
{ label: 'Пользователь', value: 'user' },
]}
/>
</ProForm>
);
export default UserForm;
ProDescriptions позволяет красиво отображать
структурированные данные в виде карточек или списков. Отличается высокой
настраиваемостью и поддержкой вложенных элементов.
ProTable,
описывает поля и рендер.horizontal
или vertical.import { ProDescriptions } from '@ant-design/pro-components';
const userData = {
name: 'Иван Иванов',
age: 28,
role: 'Пользователь',
};
const UserDetails = () => (
<ProDescriptions column={2} title="Информация о пользователе">
<ProDescriptions.Item label="Имя">{userData.name}</ProDescriptions.Item>
<ProDescriptions.Item label="Возраст">{userData.age}</ProDescriptions.Item>
<ProDescriptions.Item label="Роль">{userData.role}</ProDescriptions.Item>
</ProDescriptions>
);
export default UserDetails;
ProComponents полностью совместимы с остальными компонентами Ant
Design. Можно использовать любые элементы UI внутри таблиц, форм и
карточек, включая кнопки, модальные окна, Tabs,
Dropdown и графики.
render или
renderFormItem для полного контроля над отображением.rowKey для уникальных
идентификаторов.memo и useCallback.ProComponents предоставляют API для создания собственных полей и таблиц с уникальной логикой:
valueType позволяет создавать кастомные типы данных,
включая рендер и редактирование.editable для ProTable позволяет
комбинировать несколько режимов редактирования.request и
динамических зависимостей полей форм.Эти возможности делают ProComponents идеальным инструментом для построения административных панелей, CRM-систем, аналитических дашбордов и любых интерфейсов с интенсивной работой с данными.