Для использования Dialog плагина в Quasar необходимо убедиться, что
проект настроен с поддержкой плагинов Quasar. Dialog не требует
отдельной установки, так как является частью ядра фреймворка.
Подключение осуществляется через объект Quasar или напрямую
через Composition API:
import { Dialog } from 'quasar'
В случае Options API можно вызвать this.$q.dialog(...),
где $q — глобальный объект Quasar, доступный в
компонентах.
Dialog предоставляет несколько типов вызовов для отображения модальных окон:
Dialog.create({
title: 'Уведомление',
message: 'Операция выполнена успешно',
ok: 'Понятно'
})
Ключевые моменты:
title — заголовок окна.message — основной текст.ok — текст кнопки подтверждения.Dialog.create({
title: 'Подтверждение',
message: 'Вы действительно хотите удалить этот элемент?',
cancel: true,
persistent: true
}).onOk(() => {
console.log('Элемент удалён')
}).onCancel(() => {
console.log('Действие отменено')
})
Особенности:
cancel: true добавляет кнопку отмены.persistent: true предотвращает закрытие диалога при
клике вне окна.onOk и
onCancel.Dialog.create({
title: 'Введите имя',
prompt: {
model: '',
type: 'text',
isValid: val => val.length > 0,
label: 'Имя пользователя'
}
}).onOk(data => {
console.log('Введено:', data)
})
Особенности:
model — начальное значение поля ввода.type — тип ввода (text,
password, textarea, email и
др.).isValid — функция проверки валидности введённых
данных.onOk.Dialog поддерживает детальную настройку внешнего вида:
maxWidth,
fullWidth, maxHeight.persistent предотвращает
закрытие по клику вне окна.transitionShow и
transitionHide.Dialog.create({
title: 'Сообщение',
message: 'Это диалог с настраиваемой анимацией',
ok: { label: 'Закрыть', color: 'primary' },
persistent: true,
transitionShow: 'slide-down',
transitionHide: 'slide-up'
})
Dialog позволяет вставлять любой компонент Vue в модальное окно:
import CustomComponent from './CustomComponent.vue'
Dialog.create({
component: CustomComponent,
componentProps: { initialData: 123 },
persistent: true
})
Особенности:
component — Vue-компонент для отображения.componentProps — передача данных внутрь
компонента.Dialog плагин поддерживает управление очередью диалогов:
Dialog.create() возвращает объект, который можно
закрыть вручную через hide().const d = Dialog.create({ message: 'Процесс 1' })
setTimeout(() => d.hide(), 2000)
Dialog.create({ message: 'Процесс 2' })
С Composition API все методы Dialog доступны напрямую:
import { Dialog } from 'quasar'
import { ref } from 'vue'
const showAlert = () => {
Dialog.create({
title: 'Важное уведомление',
message: 'Событие произошло',
ok: 'ОК'
})
}
Можно интегрировать Dialog в реактивные состояния, передавая данные
через ref и reactive объекты.
Dialog поддерживает встроенную проверку данных и асинхронную обработку:
Dialog.create({
title: 'Подтверждение действия',
message: 'Введите код подтверждения',
prompt: {
model: '',
type: 'text',
isValid: val => /^\d{4}$/.test(val)
}
}).onOk(code => {
console.log('Введён код:', code)
})
Использование регулярных выражений в isValid позволяет
строго контролировать ввод.
Диалоговая система Quasar сочетает простоту использования и гибкость кастомизации, позволяя создавать как стандартные уведомления, так и сложные модальные окна с интерактивным контентом.