Отличия версий 1.x и 2.x библиотеки SweetAlert
SweetAlert — это популярная JavaScript-библиотека, предназначенная для создания модальных окон с красивым и удобным интерфейсом. Она значительно улучшает пользовательский опыт, позволяя заменять стандартные alert-диалоги на более гибкие и стильные модальные окна. С момента своего выпуска библиотека прошла через несколько крупных изменений, включая значительную трансформацию в версии 2.x. В этой части рассматриваются ключевые отличия между версиями 1.x и 2.x, которые важны для разработчиков при переходе на новую версию или при использовании определённой версии в проекте.
Одним из самых заметных изменений между версиями 1.x и 2.x является переписанное API. В первой версии SweetAlert использовался простой объект конфигурации, в котором можно было задать текст, кнопки и другие параметры. Однако, в версии 2.x API стало более мощным и гибким.
Версия 2.x библиотеки значительно улучшила работу с асинхронностью,
добавив поддержку Promise. Это изменение позволило более удобно
обрабатывать пользовательские действия, такие как нажатие на кнопки в
модальном окне. Теперь можно использовать конструкции then
и catch для обработки событий после закрытия модального
окна. В версии 1.x такой возможности не было, и приходилось использовать
callback-функции.
Пример использования Promise:
Swal.fire({
title: 'Вы уверены?',
text: 'После этого действия его нельзя будет отменить!',
icon: 'warning',
showCancelButton: true,
confirmButtonText: 'Да',
cancelButtonText: 'Отмена'
}).then((result) => {
if (result.isConfirmed) {
console.log('Действие подтверждено');
} else {
console.log('Действие отменено');
}
});
В версии 1.x приходилось использовать обработчики событий для реализации подобного поведения, что делало код менее чистым и более громоздким.
В версии 2.x была изменена структура объекта настроек. В первой версии настройки были достаточно ограниченными и простыми. В версии 2.x были добавлены новые параметры для более гибкой настройки внешнего вида и поведения модального окна.
Пример изменения настроек между версиями:
// Версия 1.x
swal('Привет!', 'Это сообщение!', 'success');
// Версия 2.x
Swal.fire({
title: 'Привет!',
text: 'Это сообщение!',
icon: 'success',
confirmButtonText: 'Ок'
});
В новой версии можно добавлять больше параметров, таких как изменение текста кнопок, установка пользовательских изображений и настроек анимации.
Версия 2.x добавила поддержку различных типов уведомлений, которые позволяют использовать стандартные иконки (например, «успех», «ошибка», «предупреждение») с различными стилями отображения. В первой версии иконки можно было устанавливать лишь через текстовые строки или через собственные изображения. Во второй версии поддерживаются стандартные иконки с параметрами, такими как:
success — для успешных операций.error — для ошибок.warning — для предупреждений.info — для информационных сообщений.question — для запросов.Использование этих типов значительно упрощает добавление стандартных уведомлений в приложение.
Swal.fire({
icon: 'success',
title: 'Успешно сохранено',
text: 'Ваши данные были сохранены.'
});
SweetAlert 2.x позволил значительно расширить возможности кастомизации внешнего вида окон с помощью анимаций. В версии 1.x возможности по анимации были ограничены базовыми переходами, такими как плавное появление окна. В новой версии появилась возможность настраивать анимации для различных состояний окна (например, появление, скрытие и другие), а также изменять их с помощью CSS.
Swal.fire({
title: 'Заголовок',
text: 'Текст уведомления',
icon: 'info',
showClass: {
popup: 'animate__animated animate__fadeIn'
},
hideClass: {
popup: 'animate__animated animate__fadeOut'
}
});
В данном примере используются анимации библиотеки
animate.css, которые могут быть подключены и настроены для
улучшения визуальных эффектов.
В версии 1.x было доступно всего две кнопки для модальных окон — подтверждения и отмены. В SweetAlert 2.x появилась возможность добавления произвольного количества кнопок. Это расширяет возможности для взаимодействия с пользователем, позволяя создавать более сложные и многозадачные интерфейсы.
Пример с несколькими кнопками:
Swal.fire({
title: 'Выберите действие',
showDenyButton: true,
showCancelButton: true,
confirmButtonText: 'Сохранить',
denyButtonText: 'Отменить',
cancelButtonText: 'Закрыть'
}).then((result) => {
if (result.isConfirmed) {
console.log('Сохранено');
} else if (result.isDenied) {
console.log('Отменено');
}
});
В этом примере доступно три кнопки с разными функциями, что делает взаимодействие с пользователем более гибким.
SweetAlert 2.x предоставляет возможность добавлять изображения и медиа-ресурсы непосредственно в модальные окна, что было невозможно в предыдущей версии. Это позволяет значительно улучшить внешний вид уведомлений, добавив графику, анимации или даже видео. В SweetAlert 1.x изображения могли быть добавлены только в виде сторонних элементов, что требовало дополнительных усилий.
Пример с изображением:
Swal.fire({
title: 'Праздничное уведомление',
text: 'Поздравляем вас с праздником!',
imageUrl: 'path/to/celebration-image.png',
imageWidth: 400,
imageHeight: 200
});
SweetAlert 2.x добавил поддержку темной темы, что является важным улучшением для современных веб-приложений. В первой версии такой функциональности не было, и для создания тёмного интерфейса требовались дополнительные стили и кастомизация. В 2.x добавление темной темы стало значительно проще благодаря встроенной настройке.
Swal.fire({
title: 'Заголовок',
text: 'Сообщение',
icon: 'info',
customClass: {
popup: 'dark-mode'
}
});
Темную тему можно активировать через CSS или с помощью встроенных параметров конфигурации.
Основные различия между версиями 1.x и 2.x заключаются в значительно улучшенном API, расширенных возможностях кастомизации, поддержке асинхронности и Promise, а также в добавлении новых типов уведомлений и анимаций. Вторая версия предлагает более гибкие и мощные инструменты для создания красивых и функциональных пользовательских интерфейсов, делая библиотеку SweetAlert ещё более удобной и подходящей для работы в современных веб-приложениях.