Quasar построен поверх Vue.js, что обеспечивает полную совместимость с компонентной системой Vue. Каждый компонент в Quasar является расширением стандартного Vue-компонента с добавлением специфических возможностей для работы с UI, адаптивностью, анимациями и интеграцией с Quasar-плагинами.
Vue-компонент в Quasar состоит из трёх основных частей:
Секция содержит HTML-разметку
компонента и служит для описания интерфейса. Quasar предоставляет
множество встроенных UI-компонентов, таких как:
q-btn — кнопки с разнообразными стилями и
анимациями.q-input — поля ввода с поддержкой валидации.q-card — карточки для организации контента.q-layout, q-header, q-footer
— элементы макета страницы.Пример структуры template:
Пример компонента
Контент карточки
Ключевой особенностью является использование
специализированных пропсов Quasar для управления
поведением компонентов. Например, elevated,
padding, align и color позволяют
минимизировать кастомную CSS-работу.
Секция отвечает за логику компонента.
Quasar использует Vue 3, поэтому чаще всего применяется синтаксис
Composition API, хотя поддерживается и Options API.
Пример с Composition API:
Особенности:
useQuasar() предоставляет доступ к глобальному API
Quasar для уведомлений, диалогов, темизации.ref или
reactive..Секция может быть локальной или
глобальной. Quasar поддерживает SCSS, Stylus и обычный CSS. Для изоляции
стилей используется атрибут scoped.
Пример стилей:
Особенности:
scoped предотвращает утечку стилей за пределы
компонента.Quasar-компоненты активно используют props, events и slots:
color, flat, dense.@click, @input.default, header,
footer, avatar.Пример:
Заголовок карточки
Основной контент
Компоненты Quasar могут использовать глобальные настройки приложения
через $q:
$q.notify)$q.dialog)$q.dark.isActive)Пример:
function toggleTheme() {
$q.dark.toggle();
}
keep-alive для
сохранения состояния страниц.Структура проекта Quasar обычно включает:
src/
components/ # переиспользуемые Vue-компоненты
layouts/ # общие макеты страниц
pages/ # страницы приложения
boot/ # файлы инициализации (плагины, настройки)
assets/ # изображения, шрифты, стили
Каждый компонент проектируется так, чтобы быть самодостаточным, с минимальной зависимостью от внешнего состояния, что облегчает тестирование и поддержку.