Обновление библиотеки Ant Design с версии 4 до версии 5 включает значительные изменения в архитектуре компонентов, системе темизации, типизации и способах работы с формами. Важно учитывать, что часть старого API устарела, а новые возможности позволяют создавать более производительные и гибкие интерфейсы.
В v5 внедрена полностью переработанная система тем,
основанная на CSS-in-JS и алгоритме design token.
Ключевые моменты:
ConfigProvider теперь поддерживает объект
theme с возможностью задания переменных
token:import { ConfigProvider, Button } from 'antd';
const theme = {
token: {
colorPrimary: '#1890ff',
borderRadius: 6,
},
};
Многие компоненты получили переработку API и улучшенную типизацию:
size теперь может быть
'small' | 'middle' | 'large' с автоматическим наследованием
от ConfigProvider.type стала более
строгой:
style и token,
меньше необходимости в кастомных CSS-классах.async функций и улучшенной типизацией:
preserve теперь управляет сохранением
состояния полей при их удалении из DOM.Form.List получил улучшения для работы с динамическими
массивами данных и более строгую типизацию элементов.columns с поддержкой render и
ellipsis позволяет более гибко управлять отображением
данных:const columns = [
{
title: 'Имя',
dataIndex: 'name',
ellipsis: true,
render: (text) => {text},
},
];
;
virtual и scroll
props.В v5 полностью переработана поддержка TypeScript:
theme и token также
строго типизирован.Form и Table появилась возможность
использовать generics:interface User {
id: number;
name: string;
}
columns={columns} dataSource={users} rowKey="id" />
Отказ от устаревших API
Некоторые методы и свойства v4 стали устаревшими или удалены:
Form.Item с children без name
теперь может работать иначе — рекомендуется использовать
name для всех полей.
ConfigProvider больше не принимает
prefixCls для глобальной настройки классов; используется
новый token API.
- Некоторые устаревшие компоненты (
LegacyIcon,
Mentions v4) требуют миграции или замены на новые
аналоги.
Советы по миграции
- Обновить
antd до последней версии и проверить
установленные зависимости.
- Заменить Less-переменные на
token в
ConfigProvider.
- Перепроверить формы и таблицы на совместимость с новым API.
- Проверить кастомные стили, поскольку новая система тем может
изменить приоритеты CSS.
- Использовать строгую типизацию для выявления ошибок на этапе
компиляции.
Поддержка глобальной
конфигурации
ConfigProvider в v5 позволяет глобально настраивать:
- Язык интерфейса (
locale)
- Токены дизайна (
theme.token)
- Настройки компонентов (
componentSize,
componentDisabled)
Это упрощает консистентность интерфейса и ускоряет разработку.
Рендеринг и
производительность
- Компоненты теперь используют
React 18 оптимизации,
включая memo, useTransition и
concurrent features.
- Table, List и виртуальные скроллы позволяют работать с тысячами
элементов без лагов.
- Обновленная система токенов уменьшает перерисовку при смене
темы.
Итоговые преимущества v5
- Унифицированная и строгая типизация для всех компонентов.
- Гибкая и динамическая система тем через
token.
- Улучшенная производительность и поддержка крупных данных.
- Современный API для форм и таблиц с полной поддержкой
async/await.
- Лёгкая миграция при соблюдении новых правил конфигурации и
темизации.