Фиксация колонок — это механизм, позволяющий закреплять определённые
столбцы таблицы так, чтобы они оставались видимыми при горизонтальной
прокрутке. В библиотеке Naive UI этот функционал
реализуется через свойство fixed у объекта колонки в
компоненте <n-data-table>.
fixedСвойство fixed может принимать значения:
"left" — колонка фиксируется слева;"right" — колонка фиксируется справа;undefined или false — колонка не
фиксирована.Пример объявления колонки с фиксацией:
const columns = [
{
title: 'ID',
key: 'id',
fixed: 'left',
width: 80
},
{
title: 'Имя',
key: 'name',
width: 200
},
{
title: 'Возраст',
key: 'age',
width: 100
},
{
title: 'Действия',
key: 'actions',
fixed: 'right',
width: 150
}
];
В данном примере колонка ID закреплена слева, а колонка
Действия — справа. Все остальные колонки остаются
прокручиваемыми.
Фиксированные колонки в Naive UI требуют явного
указания ширины (width). Если ширина не задана, фиксация
может работать некорректно или вызывать смещение остальных колонок при
прокрутке.
Рекомендуется использовать числовое значение в пикселях:
width: 120
или строковое с указанием единицы измерения:
width: '120px'
Фиксированные колонки поддерживают все стандартные функциональности Naive UI:
sortable: truefilters и
filterMultiplerenderПример комбинированного использования:
const columns = [
{
title: 'ID',
key: 'id',
fixed: 'left',
width: 80,
sortable: true
},
{
title: 'Имя',
key: 'name',
width: 200,
filters: [
{ label: 'Алиса', value: 'Alice' },
{ label: 'Боб', value: 'Bob' }
],
filterMultiple: false
},
{
title: 'Действия',
key: 'actions',
fixed: 'right',
width: 150,
render(row) {
return h('button', { onClick: () => alert(row.id) }, 'Показать ID')
}
}
];
В одной таблице можно фиксировать несколько колонок с одной стороны. В этом случае Naive UI корректно выстраивает порядок:
width.width для фиксированных колонок.fixed и
width.Фиксация колонок в Naive UI позволяет создавать удобные таблицы с высокой читаемостью данных и сохраняет доступ к ключевым полям даже при горизонтальной прокрутке. Она органично сочетается с остальными возможностями таблицы, такими как сортировка, фильтрация и кастомный рендер, обеспечивая гибкость интерфейса.