В Carbon Components Svelte форматирование отображаемых данных играет ключевую роль в обеспечении удобного и корректного взаимодействия с пользователем. Компоненты библиотеки предоставляют встроенные механизмы для преобразования чисел, дат, валют и других значений в удобочитаемые формы, сохраняя при этом единообразие интерфейса.
Для чисел применяются следующие подходы:
Форматирование с разделителями тысяч
Использование встроенной функции NumberFormat позволяет
автоматически добавлять разделители тысяч и управлять количеством
десятичных знаков:
import { NumberFormat } from 'carbon-components-svelte';
<NumberFormat value={1234567.89} locale="ru-RU" minimumFractionDigits={2} />
Здесь:
value — исходное число;locale — региональная локализация, влияющая на стиль
разделителей;minimumFractionDigits — минимальное количество знаков
после запятой.Форматирование процентов Для отображения
процентов удобно использовать опцию style: 'percent':
<NumberFormat value={0.256} style="percent" maximumFractionDigits={1} />
Результат автоматически преобразуется в 25.6%.
Компоненты поддерживают корректное отображение валют с учётом локализации и символов валют:
<NumberFormat value={12345.67} style="currency" currency="USD" />
<NumberFormat value={12345.67} style="currency" currency="EUR" locale="de-DE" />
Особенности:
currency задаёт символ или код валюты
(USD, EUR, RUB и т.д.);locale управляет форматом (например, разделители и
позиция символа валюты).Для отображения дат используется компонент DateFormat,
позволяющий управлять форматом вывода и локализацией:
import { DateFormat } from 'carbon-components-svelte';
<DateFormat value={new Date()} dateStyle="long" timeStyle="short" locale="ru-RU" />
Опции:
dateStyle может принимать значения short,
medium, long, full;timeStyle задаёт формат времени: short,
medium, long, full;locale определяет язык и формат даты/времени.Иногда требуется комбинированное форматирование или создание специфического отображения:
<NumberFormat
value={1234.5}
locale="ru-RU"
minimumFractionDigits={2}
maximumFractionDigits={2}
style="decimal"
/>
Можно объединять компоненты с другими элементами интерфейса Carbon,
например, в таблицах (DataTable) или формах
(TextInput) для динамического отображения значений.
Для числовых и денежных значений компонент NumberInput
поддерживает встроенные ограничения:
min и max — диапазон допустимых
значений;step — шаг изменения;formatOptions — объект для кастомного форматирования
чисел.Пример с ограничением диапазона:
<NumberInput
bind:value={amount}
min={0}
max={10000}
step={50}
formatOptions={{ style: 'currency', currency: 'RUB' }}
/>
Такое сочетание обеспечивает не только корректный вывод, но и ограничивает ввод пользователя, предотвращая ошибки и некорректные значения.
В DataTable форматирование данных осуществляется через
render-функции колонок:
const columns = [
{ id: 'price', header: 'Цена', render: row => <NumberFormat value={row.price} style="currency" currency="USD" /> },
{ id: 'date', header: 'Дата', render: row => <DateFormat value={row.date} dateStyle="short" /> }
];
Это позволяет:
Все компоненты Carbon Components Svelte учитывают locale
как основной инструмент управления отображением. Систематическое
использование локали обеспечивает:
style="currency" и указание валюты;percent, чтобы
избежать ошибок при интерпретации дробных чисел;DateFormat и задавать
locale для точного соответствия формату;NumberInput или
кастомные функции рендера.Эти практики позволяют создавать интерфейсы, которые легко читаются пользователем и соответствуют высоким стандартам визуального и функционального оформления.