Для работы с Toastify необходимо подключить библиотеку. В среде браузера это можно сделать через CDN:
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/toastify-js/src/toastify.min.css">
<script src="https://cdn.jsdelivr.net/npm/toastify-js"></script>
Для проектов на npm:
npm install toastify-js
Импорт в модуле Jav * aScript:
import Toastify from 'toastify-js';
import "toastify-js/src/toastify.css";
После подключения можно создавать простые уведомления:
Toastify({
text: "Привет, мир!",
duration: 3000,
gravity: "top",
position: "right",
backgroundColor: "#4CAF50"
}).showToast();
Ключевые параметры:
text — текст уведомления.duration — время отображения в миллисекундах (0
оставляет уведомление до закрытия вручную).gravity — вертикальное положение ("top"
или "bottom").position — горизонтальное положение
("left", "center", "right").backgroundColor — цвет фона.Обёртка — это функция, которая инкапсулирует стандартные параметры Toastify и позволяет создавать уведомления с минимальным количеством кода.
Пример базовой обёртки:
function showToast(message, options = {}) {
Toastify({
text: message,
duration: options.duration || 3000,
gravity: options.gravity || "top",
position: options.position || "right",
backgroundColor: options.backgroundColor || "#333",
close: options.close || false,
stopOnFocus: options.stopOnFocus !== undefined ? options.stopOnFocus : true,
onClick: options.onClick || null
}).showToast();
}
Теперь уведомление можно вызвать так:
showToast("Данные успешно сохранены", { backgroundColor: "#4CAF50", close: true });
Для удобства и единообразия часто создают отдельные обёртки под разные типы уведомлений: успех, ошибка, информация, предупреждение.
const toastTypes = {
success: { backgroundColor: "#4CAF50" },
error: { backgroundColor: "#F44336" },
info: { backgroundColor: "#2196F3" },
warning: { backgroundColor: "#FF9800" }
};
function showTypedToast(message, type = "info", options = {}) {
const typeConfig = toastTypes[type] || toastTypes.info;
showToast(message, { ...typeConfig, ...options });
}
Примеры использования:
showTypedToast("Операция выполнена успешно", "success");
showTypedToast("Произошла ошибка при сохранении", "error", { duration: 5000 });
Преимущество:
toastTypes.Обёртки позволяют добавлять дополнительные возможности, которые Toastify не предоставляет напрямую:
function showToastWithLog(message, options = {}) {
console.log(`Toast: ${message}`);
showToast(message, options);
}
Создаём массив и функцию, которая показывает уведомления поочередно:
const toastQueue = [];
function enqueueToast(message, options = {}) {
toastQueue.push({ message, options });
if (toastQueue.length === 1) processQueue();
}
function processQueue() {
if (!toastQueue.length) return;
const { message, options } = toastQueue[0];
showToast(message, { ...options, onClose: () => {
toastQueue.shift();
processQueue();
}});
}
Теперь уведомления будут отображаться последовательно, без наложений.
В обёртках удобно задавать единый стиль для всей системы уведомлений, включая шрифты, тени и бордеры:
function styledToast(message, options = {}) {
showToast(message, {
...options,
style: {
fontFamily: "'Roboto', sans-serif",
fontSize: "14px",
boxShadow: "0 4px 12px rgba(0,0,0,0.2)",
borderRadius: "8px"
}
});
}
Использование:
styledToast("Стильное уведомление");
Обёртки позволяют показывать уведомления после завершения асинхронных операций:
async function showAsyncToast(promise, messages) {
try {
const result = await promise;
showTypedToast(messages.success, "success");
return result;
} catch (error) {
showTypedToast(messages.error, "error");
throw error;
}
}
Пример:
showAsyncToast(fetch("/api/data"), {
success: "Данные загружены",
error: "Ошибка загрузки данных"
});
Обёртка может быть связана с формами для уведомлений об ошибках или успешной отправке:
function handleFormSubmission(formElement) {
formElement.addEventListener("submit", async (e) => {
e.preventDefault();
try {
await submitForm(formElement);
showTypedToast("Форма отправлена", "success");
} catch {
showTypedToast("Не удалось отправить форму", "error");
}
});
}
Обёртки над Toastify позволяют:
success,
error, info, warning) с
минимальным количеством повторяющегося кода.Эффективная обёртка превращает библиотеку Toastify в полноценную систему уведомлений для любого проекта на JavaScript.