QPageContainer — это компонент-контейнер, предназначенный для организации основной области контента приложения, построенного на Quasar. Он отвечает за корректное отображение страниц в сочетании с компонентами навигации, такими как QLayout, QHeader, QFooter и QDrawer. Без QPageContainer страницы не будут правильно позиционироваться и могут перекрываться с фиксированными элементами интерфейса.
tag (String, по умолчанию: ‘main’) Позволяет изменить HTML-тег, который будет использоваться для контейнера. Это полезно при необходимости семантически правильной разметки.
class (String | Array | Object) Позволяет задавать CSS-классы для стилизации контейнера. Рекомендуется использовать для добавления отступов, фонов или дополнительных стилевых настроек.
style (Object | String) Применяется для инлайновых стилей к контейнеру.
QPageContainer автоматически подстраивается под размеры экрана и учёт фиксированных компонентов интерфейса. Это особенно важно для мобильных и адаптивных приложений, где QHeader или QFooter могут иметь динамическую высоту.
QPage используется для определения отдельной страницы внутри QPageContainer. Каждая QPage растягивается на всю доступную область контейнера и имеет встроенную поддержку скроллинга.
padding (Boolean, по умолчанию: false) Добавляет внутренние отступы вокруг контента страницы, обеспечивая визуальный отрыв от краёв контейнера.
style и class Позволяют кастомизировать внешний вид страницы с помощью CSS, аналогично QPageContainer.
name (String, опционально) Используется для идентификации страницы в системах навигации или для работы с Vue Router при динамическом отображении страниц.
container-style и container-class Позволяют отдельно настраивать обёртку страницы, не влияя на основной контейнер.
QPageContainer служит основным обёрточным компонентом для страниц приложения. Структура использования выглядит следующим образом:
<template>
<q-layout view="lHh Lpr lFf">
<q-header elevated>
<q-toolbar>
<q-toolbar-title>Пример приложения</q-toolbar-title>
</q-toolbar>
</q-header>
<q-page-container>
<q-page padding>
<div>
Основной контент страницы
</div>
</q-page>
<q-page padding>
<div>
Другая страница
</div>
</q-page>
</q-page-container>
<q-footer elevated>
Футер приложения
</q-footer>
</q-layout>
</template>
Особенности работы:
padding
упрощает работу с контентом, избавляя от необходимости вручную задавать
отступы в стилях.QPage можно использовать вместе с динамическими компонентами Vue для ленивой подгрузки контента. Это уменьшает время первоначальной загрузки приложения:
<q-page-container>
<component :is="currentPage" />
</q-page-container>
<script setup>
import HomePage from './pages/HomePage.vue';
import AboutPage from './pages/AboutPage.vue';
import { ref } from 'vue';
const currentPage = ref(HomePage);
// Переключение страницы
function switchPage() {
currentPage.value = currentPage.value === HomePage ? AboutPage : HomePage;
}
</script>
При использовании маршрутизации QPageContainer автоматически подстраивается под рендеринг страниц:
<q-page-container>
<router-view />
</q-page-container>
Каждый маршрут можно оформить как отдельную QPage, что обеспечивает единообразное поведение интерфейса с учётом заголовков, футеров и навигационных панелей.
name для
удобной идентификации при динамической навигации или интеграции с Vue
Router.Эти компоненты образуют основу построения приложений на Quasar, обеспечивая стабильную и предсказуемую структуру интерфейса, совместимую с адаптивным дизайном и современными практиками разработки на Vue.js.