Компонент v-chip в библиотеке Vuetify представляет собой визуальный элемент, предназначенный для отображения короткой информации, тегов, категорий или действий в компактной форме. Он может содержать текст, иконки, аватары и элементы управления, такие как кнопки закрытия. v-chip обладает гибкой системой кастомизации и может применяться как отдельный интерактивный элемент, так и как часть списков и фильтров.
<template>
<v-chip color="primary" text-color="white">
Пример чипа
</v-chip>
</template>
В этом примере создается базовый чип с цветом primary и
белым текстом.
v-chip предоставляет множество свойств, позволяющих управлять его внешним видом и поведением:
@click:close.Пример использования нескольких свойств:
<v-chip
color="success"
text-color="white"
outlined
label
close
@click:close="removeChip"
>
Активный чип
</v-chip>
v-chip поддерживает кликабельность и реакцию на события:
@click – срабатывает при клике по чипу.@click:close – срабатывает при нажатии на кнопку
закрытия.@mouseenter и @mouseleave – можно
использовать для динамического изменения стиля.Пример:
<v-chip
color="indigo"
clickable
@click="handleClick"
close
@click:close="removeChip"
>
Интерактивный чип
</v-chip>
В методах:
methods: {
handleClick() {
console.log('Чип кликнут');
},
removeChip() {
console.log('Чип удален');
}
}
Чипы можно украшать иконками или аватарами для лучшей визуализации информации.
Иконка слева или справа:
<v-chip color="pink" text-color="white" outlined>
<v-icon left>mdi-heart</v-icon>
Любимый
</v-chip>
Использование аватара:
<v-chip>
<v-avatar left>
<img src="avatar.png" alt="User Avatar">
</v-avatar>
Пользователь
</v-chip>
Аватар может быть круглым или квадратным, задавая форму через
свойства tile или rounded.
v-chip часто используется для отображения выбранных фильтров или тегов:
<v-chip-group
v-model="selected"
multiple
column
>
<v-chip v-for="item in items" :key="item" :value="item">
{{ item }}
</v-chip>
</v-chip-group>
Здесь v-chip-group позволяет объединять несколько чипов,
управлять выбором и выделением. Свойство multiple
позволяет выбирать несколько элементов одновременно. При клике на чип он
автоматически добавляется или удаляется из массива
selected.
Чипы в Vuetify можно стилизовать с помощью классов и CSS переменных:
small, medium,
large.outlined и
кастомного цвета.rounded, или
полностью квадратные с tile.elevation-2.Пример кастомного стиля:
<v-chip
class="my-chip"
color="deep-purple accent-4"
text-color="yellow"
outlined
>
Кастомный чип
</v-chip>
.my-chip {
font-weight: bold;
letter-spacing: 0.5px;
}
Чипы легко генерируются динамически через массивы и реактивные данные:
<template>
<v-chip
v-for="chip in chips"
:key="chip.id"
color="cyan"
close
@click:close="remove(chip.id)"
>
{{ chip.label }}
</v-chip>
</template>
<script>
export default {
data() {
return {
chips: [
{ id: 1, label: 'JavaScript' },
{ id: 2, label: 'Vuetify' },
{ id: 3, label: 'Frontend' }
]
}
},
methods: {
remove(id) {
this.chips = this.chips.filter(chip => chip.id !== id);
}
}
}
</script>
Такой подход позволяет создавать списки тегов, фильтров и меток, которые можно удалять или редактировать в реальном времени.
Чипы часто комбинируются с v-autocomplete, v-select и v-input для создания фильтров или выбора тегов:
<v-autocomplete
v-model="selectedTags"
:items="tags"
label="Выберите теги"
multiple
chips
></v-autocomplete>
Свойство chips автоматически визуализирует выбранные элементы как чипы, обеспечивая интуитивный пользовательский интерфейс.
v-for и реактивные
массивы.outlined, label,
clickable, close для гибкой настройки внешнего
вида и поведения.@click и @click:close.Чипы остаются одним из наиболее универсальных компонентов Vuetify, обеспечивая компактное, наглядное и интерактивное представление информации, что делает интерфейс приложения более современным и удобным.