В библиотеке Noty управление уведомлениями строится вокруг экземпляров уведомлений. Экземпляр представляет собой объект, через который можно контролировать поведение уведомления после его создания: закрывать, обновлять, изменять контент или добавлять события. Понимание механизма получения и работы с экземпляром — ключевой момент для гибкого взаимодействия с уведомлениями.
Для создания уведомления используется конструктор
new Noty(options). Обязательным параметром является объект
options, который определяет внешний вид, поведение и
контент уведомления.
Пример базовой инициализации:
let myNotification = new Noty({
text: 'Это тестовое уведомление',
type: 'success',
layout: 'topRight',
timeout: 3000
});
Пояснения ключевых свойств:
text — содержимое уведомления, может быть строкой или
HTML.type — тип уведомления: alert,
success, error, warning,
information.layout — расположение на экране (topRight,
topLeft, bottomRight, bottomLeft,
center).timeout — автоматическое закрытие через указанное время
в миллисекундах. Если false, уведомление закрывается
вручную.Экземпляр уведомления сохраняется в переменной
myNotification, что позволяет далее обращаться к нему
напрямую.
Для отображения уведомления используется метод
.show():
myNotification.show();
В этот момент уведомление появляется на странице, а переменная
myNotification становится полноценным экземпляром
Noty. Через него доступны методы управления уведомлением.
Основные методы экземпляра:
.show() — отображение уведомления..close() — закрытие уведомления программно..setText(newText) — изменение текста уведомления на
лету..setType(newType) — изменение типа уведомления
(success, error и т.д.)..on(event, callback) — привязка событий к уведомлению
(например, on('onClose', () => {...})).Пример изменения текста и типа уведомления:
myNotification.setText('Обновлённое уведомление');
myNotification.setType('warning');
Экземпляры Noty поддерживают множество событий, которые позволяют выполнять действия на определённые моменты жизненного цикла уведомления:
| Событие | Описание |
|---|---|
onShow |
Срабатывает при отображении уведомления |
onClose |
Срабатывает при закрытии уведомления |
onClick |
Срабатывает при клике по уведомлению |
onHover |
Срабатывает при наведении курсора на уведомление |
Пример привязки событий:
myNotification.on('onShow', function() {
console.log('Уведомление показано');
});
myNotification.on('onClose', function() {
console.log('Уведомление закрыто');
});
Noty поддерживает одновременное создание нескольких уведомлений. Каждый экземпляр хранится отдельно и управляется индивидуально:
let notif1 = new Noty({text: 'Первое уведомление', type: 'success'}).show();
let notif2 = new Noty({text: 'Второе уведомление', type: 'error'}).show();
notif1.close(); // Закрывает только первое уведомление
notif2.setText('Изменённое второе уведомление'); // Обновляет только второе уведомление
Использование отдельных экземпляров позволяет гибко контролировать поведение каждого уведомления без воздействия на остальные.
Метод .show() не возвращает новый
объект, а всегда работает с уже созданным экземпляром. Поэтому
крайне важно сохранять объект уведомления в переменную, если требуется
дальнейшее взаимодействие:
let notif = new Noty({text: 'Пример'}).show();
// notif — экземпляр, с которым можно работать:
notif.close();
Если переменная не сохранена, доступ к уведомлению будет возможен
только через глобальные методы управления очередью уведомлений
(Noty.closeAll()), но индивидуальное управление станет
невозможным.
Эта структура позволяет реализовать сложные сценарии уведомлений, включая динамическое обновление, управление временем отображения и интеграцию с пользовательскими событиями.