Компонент Tag в библиотеке Naive UI используется для отображения небольших меток, которые могут служить индикаторами состояния, категорий или просто визуальными элементами для выделения информации. Он поддерживает разные типы отображения, цвета, размеры, формы и интерактивность.
Ключевые свойства компонента Tag:
type — определяет визуальный стиль метки. Доступные
значения: 'default', 'success',
'info', 'warning', 'error'.
Использование разных типов позволяет быстро визуально классифицировать
информацию.color — задаёт кастомный цвет метки. Можно использовать
как строку с названием цвета ('red'), так и HEX-значение
('#ff0000'). При указании кастомного цвета автоматически
отключается стандартная цветовая схема type.size — размер метки. Возможные варианты:
'small', 'medium', 'large'.
Размер влияет на высоту, внутренние отступы и шрифт.round — булевое значение, определяющее, будет ли метка
с закруглёнными углами. Значение true создаёт полностью
круглую метку, подходящую для отображения статусов или тегов
категорий.closable — если true, добавляется кнопка
закрытия на метке. При клике вызывается событие
on-close.disabled — делает метку неактивной, при этом все
интерактивные действия блокируются.Компонент Tag поддерживает несколько событий, которые позволяют интегрировать его с логикой приложения:
on-close — вызывается при нажатии на кнопку закрытия
метки. Возвращает объект события клика и сам тег.on-click — срабатывает при клике по метке, если она не
закрываема и не заблокирована через disabled.on-mouseenter и on-mouseleave —
стандартные события мыши, полезные для создания эффектов наведения или
подсказок.Tag можно использовать как простой индикатор или как интерактивный элемент:
prefix и
suffix можно добавлять иконки слева или справа от текста
метки, что расширяет визуальные возможности.import { NTag } from 'naive-ui'
export default {
components: { NTag },
setup() {
const tags = [
{ label: 'Важно', type: 'error' },
{ label: 'Информация', type: 'info' },
{ label: 'Успешно', type: 'success', closable: true }
]
return { tags }
},
template: `
<div>
<n-tag v-for="tag in tags" :key="tag.label"
:type="tag.type"
:closable="tag.closable">
{{ tag.label }}
</n-tag>
</div>
`
}
В данном примере создаются метки разного типа с возможностью закрытия для одного из тегов.
size можно
создать компактные метки для плотных интерфейсов или крупные для важных
уведомлений.color метка
автоматически подстраивается под этот цвет, изменяя фон и текст.round полностью
закругляет углы, делая метку более визуально мягкой.disabled позволяет сделать
метку визуально приглушённой и недоступной для клика.Naive UI предоставляет слоты для расширенной кастомизации Tag:
prefix — элемент, добавляемый перед текстом. Обычно
используется для иконок или цветовых индикаторов.suffix — элемент после текста, например, кнопка
закрытия или дополнительная иконка.default — основной текст метки.Пример с иконкой:
<n-tag type="info" round>
<template #prefix>
<n-icon name="info-circle" />
</template>
Информация
</n-tag>
Tag часто используется вместе с компонентами
NInput, NSelect,
NCheckboxGroup, формируя интерфейс для управления
тегами, фильтрами или статусами объектов. Например, динамическое
добавление и удаление тегов в форме реализуется через
v-model и on-close, обеспечивая полную
интерактивность без сложной логики.
type) для быстрого визуального
различения категорий.closable
и обрабатывать событие on-close.color подходит для
соответствия фирменному стилю, но при этом стоит учитывать читаемость
текста.Эти особенности делают компонент Tag универсальным инструментом для построения современных интерфейсов с понятной визуальной иерархией и интерактивностью.