Компонент v-app-bar в Vuetify является специализированной панелью приложения, предназначенной для создания верхней навигационной или функциональной панели. Он интегрируется с v-toolbar, но обладает расширенными возможностями, такими как закрепление, скрытие при прокрутке и адаптивное поведение. Основной принцип работы v-app-bar — управление положением и поведением верхнего слоя интерфейса в рамках макета приложения.
<template>
<v-app-bar app color="primary" dark>
<v-toolbar-title>Моё приложение</v-toolbar-title>
</v-app-bar>
</template>
appОбеспечивает интеграцию панели с макетом v-app, чтобы содержимое страницы не перекрывалось и автоматически смещалось вниз на высоту панели.
color и
dark/lightПозволяют управлять визуальной частью панели. Возможные значения
цвета — стандартные палитры Vuetify (primary,
secondary, success, error и
др.).
<v-app-bar color="secondary" light>
<v-toolbar-title>Пример светлой панели</v-toolbar-title>
</v-app-bar>
dense и
prominent<v-app-bar dense color="primary" dark>
<v-toolbar-title>Уплотнённая панель</v-toolbar-title>
</v-app-bar>
fixed и
absolute<v-app-bar fixed app color="primary" dark>
<v-toolbar-title>Закрепленная панель</v-toolbar-title>
</v-app-bar>
hide-on-scrollАвтоматически скрывает панель при прокрутке вниз и показывает при прокрутке вверх. Отлично подходит для мобильных интерфейсов, где важно экономить пространство.
<v-app-bar app hide-on-scroll color="primary" dark>
<v-toolbar-title>Скрытие при прокрутке</v-toolbar-title>
</v-app-bar>
v-toolbar-title задаёт основной заголовок панели, а компоненты v-btn и v-icon позволяют размещать кнопки действий и иконки.
<v-app-bar app color="primary" dark>
<v-toolbar-title>Моё приложение</v-toolbar-title>
<v-spacer></v-spacer>
<v-btn icon>
<v-icon>mdi-magnify</v-icon>
</v-btn>
<v-btn icon>
<v-icon>mdi-bell</v-icon>
</v-btn>
</v-app-bar>
Для бокового меню или панели навигации можно использовать v-app-bar-nav-icon, который часто применяется совместно с v-navigation-drawer:
<v-app-bar app color="primary" dark>
<v-app-bar-nav-icon @click="drawer = !drawer"></v-app-bar-nav-icon>
<v-toolbar-title>Приложение</v-toolbar-title>
</v-app-bar>
<v-navigation-drawer v-model="drawer" app>
<v-list>
<v-list-item link>
<v-list-item-title>Главная</v-list-item-title>
</v-list-item>
<v-list-item link>
<v-list-item-title>Настройки</v-list-item-title>
</v-list-item>
</v-list>
</v-navigation-drawer>
v-app-bar поддерживает реактивное поведение с помощью v-model и слотов. Панель может динамически менять содержимое в зависимости от состояния приложения.
<v-app-bar app clipped-left color="primary" dark>
<v-toolbar-title>Clipped Left Example</v-toolbar-title>
</v-app-bar>
Vuetify предоставляет гибкие возможности для стилизации v-app-bar:
<v-app-bar app color="deep-purple accent-4" dark height="80">
<v-toolbar-title>Высокая кастомная панель</v-toolbar-title>
</v-app-bar>
<v-app>
<v-app-bar app color="primary" dark>
<v-app-bar-nav-icon @click="drawer = !drawer"></v-app-bar-nav-icon>
<v-toolbar-title>Приложение</v-toolbar-title>
</v-app-bar>
<v-navigation-drawer v-model="drawer" app>
<v-list>
<v-list-item link>
<v-list-item-title>Пункт меню</v-list-item-title>
</v-list-item>
</v-list>
</v-navigation-drawer>
<v-main>
<v-container>
Основной контент
</v-container>
</v-main>
</v-app>
Такой подход обеспечивает v-app-bar как универсальный инструмент для организации верхней панели в любом Vue-приложении, обеспечивая одновременно эстетичность и функциональность.