Для начала работы с библиотекой Toastify необходимо подключить её к проекту. Существует несколько способов: через CDN или через пакетный менеджер npm/yarn.
Через CDN:
Через npm:
npm install toastify-js
После установки через npm необходимо импортировать библиотеку в ваш скрипт:
import Toastify from 'toastify-js';
import 'toastify-js/src/toastify.css';
Базовое уведомление создаётся с помощью функции
Toastify():
Toastify({
text: "Пример уведомления",
duration: 3000, // время показа в миллисекундах
close: true, // добавляет кнопку закрытия
}).showToast();
Ключевые параметры:
text – текст уведомления.duration – длительность отображения, по умолчанию 3000
мс.close – наличие кнопки закрытия уведомления.gravity – положение по вертикали ("top"
или "bottom").position – положение по горизонтали
("left", "center", "right").backgroundColor – цвет фона.className – добавление CSS-классов для
кастомизации.stopOnFocus – остановка таймера при наведении
курсора.Toastify поддерживает как встроенные стили, так и кастомизацию через CSS. Например:
Toastify({
text: "Кастомное уведомление",
duration: 5000,
style: {
background: "linear-gradient(to right, #00b09b, #96c93d)",
color: "#fff",
fontWeight: "bold",
}
}).showToast();
Можно использовать классы:
.custom-toast {
border-radius: 12px;
padding: 16px;
font-size: 16px;
}
Toastify({
text: "Стили через класс",
className: "custom-toast"
}).showToast();
Библиотека позволяет добавлять обработчики событий на уведомления:
Toastify({
text: "Нажми на меня",
duration: 4000,
onClick: function() {
console.log("Уведомление кликнуто");
}
}).showToast();
Можно использовать события onClose для выполнения
действий при закрытии уведомления:
Toastify({
text: "Закрытие уведомления",
duration: 4000,
onClose: function() {
console.log("Уведомление закрыто");
}
}).showToast();
Для использования Toastify в продакшене необходимо учитывать несколько аспектов:
Минификация и бандлинг При использовании npm важно подключать минифицированные версии через бандлеры (Webpack, Vite, Parcel):
import Toastify from 'toastify-js';
import 'toastify-js/src/toastify.css';
При сборке бандлер автоматически минифицирует JS и CSS, уменьшая размер файлов.
Асинхронная загрузка Для уменьшения влияния на загрузку страницы можно подключать Toastify асинхронно:
import('toastify-js').then(ToastifyModule => {
ToastifyModule.default({ text: "Асинхронное уведомление" }).showToast();
});Управление дублированием уведомлений В продакшен-среде важно предотвращать создание множества одинаковых уведомлений. Можно использовать проверку перед показом:
let toastVisible = false;
function showUniqueToast(message) {
if (!toastVisible) {
toastVisible = true;
Toastify({
text: message,
duration: 3000,
onClose: () => { toastVisible = false; }
}).showToast();
}
}Оптимизация стилей Использование кастомных классов и встроенного CSS позволяет минимизировать повторяющиеся стили и уменьшить нагрузку на рендеринг.
Логирование и аналитика В продакшене может быть полезно логировать показ уведомлений для анализа поведения пользователей:
Toastify({
text: "Уведомление с логированием",
duration: 3000,
onClick: () => logEvent('toast_clicked'),
onClose: () => logEvent('toast_closed')
}).showToast();Для React, Vue или Angular Toastify можно использовать напрямую через npm и создавать обертки:
React пример:
import Toastify from 'toastify-js';
import 'toastify-js/src/toastify.css';
function notify(message) {
Toastify({ text: message, duration: 3000 }).showToast();
}
export default function App() {
return ;
}
Vue пример:
import Toastify from 'toastify-js';
import 'toastify-js/src/toastify.css';
export default {
methods: {
showToast(msg) {
Toastify({ text: msg, duration: 3000 }).showToast();
}
}
}
Эта интеграция позволяет контролировать уведомления в компонентной архитектуре, сохраняя гибкость настройки и минимальный вес библиотеки.