Библиотека Noty, используемая для создания уведомлений в JavaScript, развивается достаточно динамично. Каждая новая версия приносит улучшения в функционале, API и производительности. Понимание изменений между версиями критично для корректного обновления проектов и использования последних возможностей библиотеки.
Ранние версии (до 3.x) использовали классическую
инициализацию уведомлений через конструктор new Noty({...})
с минимальным количеством настроек. В версии 3.x и выше появился более
гибкий подход к конфигурации:
Noty.overrideDefaults(options)
позволяет глобально изменять стандартные параметры уведомлений. Ранее
приходилось модифицировать каждый экземпляр вручную..show(),
.close(), .on() и т.д.) стала более
надежной и предсказуемой. Ранние версии иногда некорректно отрабатывали
события на быстро закрывающихся уведомлениях.Шаблоны уведомлений и их разметка претерпели существенные изменения:
mint,
sunset, relax и др.), которые можно подключать
через CSS без необходимости кастомизации каждого уведомления.layout с более тонкой настройкой
(topRight, bottomLeft, center). В
старых версиях поддержка была ограничена, и приходилось писать кастомные
CSS-классы.Событийная система также претерпела изменения:
Методы .on(event, callback) и
.off(event) заменили старые устаревшие подходы с
callback в опциях. Это улучшает читаемость кода и позволяет
более гибко управлять жизненным циклом уведомлений.
Новые события:
onShow — уведомление начинает отображаться.onShown — уведомление полностью отобразилось.onClose — уведомление начинает закрываться.onClosed — уведомление полностью скрыто.Устаревшие события, такие как afterShow и
afterClose, были заменены на более унифицированные методы,
что упрощает миграцию кода с предыдущих версий.
В Noty версии 3.x и выше появились новые возможности для управления временем:
timeout поддерживает не только
числовые значения, но и функцию, возвращающую время показа уведомления
динамически..stop() и .resume()
позволяет приостанавливать таймер уведомления, что особенно полезно при
взаимодействии пользователя с уведомлением (например, при наведении
мыши).timeout: false) с последующим программным закрытием через
.close().Новые версии Noty оптимизированы для работы с современными браузерами и снижают нагрузку на DOM:
Настройка внешнего вида уведомлений стала более гибкой:
theme и type
позволяют комбинировать стили иконок и цветовые схемы без необходимости
писать собственный CSS.template дает полный контроль над HTML
уведомления.При обновлении с версии 2.x на 3.x необходимо учитывать:
.on() и
.off().animation и layout теперь
поддерживают новые синтаксисы и форматы.Noty.defaults лучше
заменять на Noty.overrideDefaults().Эти изменения делают библиотеку более гибкой, производительной и совместимой с современными веб-технологиями, позволяя создавать сложные системы уведомлений без значительных доработок кода.