Skip to content

Modal

Методы openModal, pushModal возвращают Promise, которые в случае успеха вернёт объект Modal. Данный объект является классом модального окна и служит для получения или управления текущим состоянием. На данной странице будут перечислены все доступные методы и свойства.

Свойства

id

Поле является уникальным идентификатором модального окна. Присваивается в момент открытия.

instance

Экземпляр компоненты модального окна. Используется для того, чтобы получить доступ к $data, $props и другим свойствам модального окна.

WARNING

Если вы получаете instance в своем проекте вместе в <script setup>, вам нужно помнить, что в этом случае компонент будет закрыт. Чтобы открыть некоторые свойства, вам нужно прибегнуть к defineExpose.

Если модальная компонента имеет следующий вид:

ts
// modal-component.vue
export default {
    props: {},
    data: () => {
        return {
            insideValue: "Hello"
        }
    }
}

То для получения значение insideValue необходимо обратиться к instance:

ts
const modal = await openModal(Modal);
modal.instance.insideValue; // "Hello"

isRoute

Устанавливается в значение true, если модальное окно было открыто по средствам интеграции с vue-router.

namespace

Строковое значение пространства к которому принадлежит модальное окно. Значение данной опции устанавливает в соответствии со значением переданным в options в методах для открытия модального окна.

ts
openModal(ModalComponent, {}, { namespace: "notification" })

component

Ссылка на компоненту, которая будет использоваться в качестве модального окна

closed

ComputedRef переменная, которая хранит реактивное состояние окна. Установлено в значение false, если модальное окно было открыто и отображается на странице.

props

Ref свойство, которое хранит параметры переданные в качестве props. В самом модальном окне они также получаются через props.

backgroundClose

Устанавливает, можно ли закрывать модальное окно по клику на задний фон. Значение по умолчанию равно true.

onclose

Устанавливает обработчик закрытия модального окна. Более подробно можно прочитать здесь.

ondestroy

Данный метод используется для отлавливания момента, когда модальное окно было закрыто. Отменить(вернув значение false) закрытие модального окна на этом этапе уже не возможно.

ts
const modal = await openModal(Modal)
modal.destroy = () => {
    console.log('Модальное окно было закрыто')
}

Методы

close

Метод используется для закрытия модального окна. Возвращает Promise.

on

Метод используется для прослушивания события из компоненты. В открытом модальном окне события передаваемые через emits будет перехватываться и передаваться в событие on:

ts
const modal = await openModal(ModalComponent);
modal.on("update", () => {
	// ...
})

Static

Статические поля и методы класса Modal.

EVENT_PROMPT

Название события, которое обрабатывается в случае открытия модального окна через promptModal. В таком случае инициализировав данное событие, значение переданное в него будет возвращено в promptModal, а модальное окно будет закрыто:

ts
emits(Modal.EVENT_PROMPT, 100);

Более подробно можно прочитать здесь.

STORE

Свойства имеющее тип Map<ModalId, Modal>. При открытии любого модальное окна, оно будет сохранено в этом хранилище.