Toastify предоставляет удобный API для создания уведомлений в браузере. Одним из ключевых элементов работы с этой библиотекой является управление событиями и хуками, которые позволяют отслеживать жизненный цикл уведомлений и выполнять дополнительные действия на разных этапах их отображения.
У каждого тоста есть несколько стандартных событий:
onShow – срабатывает в момент отображения уведомления на экране. Используется для инициализации дополнительных эффектов, логирования или запуска сторонней логики.
Toastify({
text: "Пример уведомления",
duration: 3000,
onShow: function(){
console.log("Тост отображён!");
}
}).showToast();onClick – вызывается при клике на уведомление. Позволяет реализовать интерактивное поведение, например, открытие ссылки или вызов функции.
Toastify({
text: "Нажмите на меня",
onClick: function(){
alert("Вы кликнули на уведомление!");
}
}).showToast();onClose – срабатывает при закрытии тоста, независимо от того, произошло ли это автоматически или вручную. Используется для очистки ресурсов или завершения каких-либо действий.
Toastify({
text: "Закроется через 3 секунды",
duration: 3000,
onClose: function(){
console.log("Тост закрыт");
}
}).showToast();Хуки в Toastify — это функции, которые дают возможность вмешиваться в процесс жизненного цикла уведомления:
beforeShow – вызывается перед отображением тоста. Можно использовать для проверки условий или динамического изменения контента.
Toastify({
text: "Текст может измениться",
beforeShow: function(){
this.options.text = "Текст изменён перед показом";
}
}).showToast();afterShow – вызывается сразу после того, как тост появился на экране. Часто применяется для запуска анимаций или внешних эффектов.
Toastify({
text: "После показа",
afterShow: function(){
console.log("Тост появился полностью");
}
}).showToast();beforeClose – срабатывает перед закрытием тоста. Позволяет отменить закрытие или выполнить дополнительные проверки.
Toastify({
text: "Попытка закрытия",
beforeClose: function(){
return confirm("Вы точно хотите закрыть уведомление?");
}
}).showToast();optionsВсе хуки и события передаются через объект options при
создании тоста. Важно помнить:
onShow, onClick и onClose
работают напрямую с жизненным циклом тоста.beforeShow, afterShow и
beforeClose дают возможность вмешательства в процесс
отображения и закрытия.Пример комплексного использования:
Toastify({
text: "Комплексный пример",
duration: 5000,
onShow: function(){ console.log("Тост показан"); },
onClick: function(){ console.log("Кликнут"); },
onClose: function(){ console.log("Тост закрыт"); },
beforeShow: function(){ console.log("Перед показом"); },
afterShow: function(){ console.log("После показа"); },
beforeClose: function(){ console.log("Перед закрытием"); return true; }
}).showToast();
this указывает на текущий тост).beforeClose возвращает false,
закрытие уведомления будет отменено.onClick можно комбинировать с
stopOnFocus: true для предотвращения случайного закрытия
уведомления при наведении курсора.beforeShow.afterShow.onClick и onClose одновременно.beforeClose с
возвратом булева значения.События и хуки делают Toastify гибким инструментом для создания интерактивных уведомлений, позволяя строить сложные сценарии с минимальным количеством кода.