Для начала работы с Vuetify в проекте на Vue.js необходимо создать
отдельный файл конфигурации, чаще всего называемый
vuetify.js. Этот файл служит точкой централизованного
управления библиотекой компонентов, темами, стилями и глобальными
настройками.
В стандартной конфигурации требуется импортировать
createVuetify из vuetify и дополнительные
компоненты или плагины, если используется Material Design Icons или
другие иконки:
// src/plugins/vuetify.js
import 'vuetify/styles'
import { createVuetify } from 'vuetify'
import { aliases, mdi } from 'vuetify/iconsets/mdi'
// Импорт компонентов и директив при необходимости
import * as components from 'vuetify/components'
import * as directives from 'vuetify/directives'
vuetify/styles подключает базовые стили
библиотеки.components и directives позволяют
использовать все встроенные элементы без дополнительного импорта в
каждом компоненте.aliases и mdi настраивают иконки Material
Design.Экземпляр Vuetify создается с помощью функции
createVuetify, в которую передаются конфигурационные
объекты:
const vuetify = createVuetify({
components,
directives,
icons: {
defaultSet: 'mdi',
aliases,
sets: {
mdi,
},
},
theme: {
defaultTheme: 'light',
themes: {
light: {
colors: {
primary: '#1976D2',
secondary: '#424242',
accent: '#82B1FF',
error: '#FF5252',
info: '#2196F3',
success: '#4CAF50',
warning: '#FFC107',
},
},
dark: {
colors: {
primary: '#2196F3',
secondary: '#FF5722',
accent: '#FF4081',
error: '#F44336',
info: '#00BCD4',
success: '#8BC34A',
warning: '#FFC107',
},
},
},
},
})
Ключевые моменты:
mdi, fa, material-icons) и
настроить алиасы.После создания vuetify.js необходимо подключить его в
main.js или main.ts проекта Vue:
import { createApp } from 'vue'
import App from './App.vue'
import vuetify from './plugins/vuetify'
const app = createApp(App)
app.use(vuetify)
app.mount('#app')
Это гарантирует, что Vuetify будет доступен во всех компонентах приложения.
Vuetify предоставляет гибкую систему тем, позволяя задавать несколько тем и переключаться между ними динамически:
vuetify.theme.global.name.value = 'dark' // переключение на темную тему
Можно также настроить цвета отдельных компонентов через свойства
v-bind или глобальные CSS-переменные.
Файл vuetify.js позволяет установить глобальные
параметры для всех компонентов:
const vuetify = createVuetify({
defaults: {
VBtn: {
rounded: 'lg',
elevation: 2,
color: 'primary',
},
VTextField: {
density: 'comfortable',
variant: 'outlined',
},
},
})
defaults задает дефолтные значения для всех экземпляров
указанного компонента.Vuetify поддерживает локализацию через
createVuetify:
import { en, ru } from 'vuetify/locale'
const vuetify = createVuetify({
locale: {
locale: 'ru',
messages: { en, ru },
},
})
locale определяет язык интерфейса.Для уменьшения размера итогового бандла рекомендуется подключать только нужные компоненты и директивы:
import { VApp, VBtn } from 'vuetify/components'
import { Ripple } from 'vuetify/directives'
const vuetify = createVuetify({
components: { VApp, VBtn },
directives: { Ripple },
})
Такой подход особенно важен для крупных проектов с большим количеством страниц и компонентов.
vuetify.jsИдеальная структура файла должна быть логичной и разделенной по функциональным блокам:
Следование этой структуре обеспечивает удобное расширение и поддержку проекта в будущем.