Для использования Toastify необходимо подключить библиотеку к проекту. Наиболее распространённые способы — через CDN или пакетный менеджер npm.
Через 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
После установки через npm можно импортировать библиотеку в модульном Jav * aScript:
import Toastify from 'toastify-js';
import "toastify-js/src/toastify.css";
Для отображения простого тоста используется функция
Toastify() с объектом конфигурации:
Toastify({
text: "Пример уведомления",
duration: 3000
}).showToast();
Ключевые параметры:
text — текст уведомления.duration — время отображения в миллисекундах.close — добавляет кнопку закрытия
(true/false).gravity — положение по вертикали ("top"
или "bottom").position — положение по горизонтали
("left", "center", "right").Toastify позволяет полностью управлять стилем уведомления через CSS
или объект style:
Toastify({
text: "Кастомный стиль",
duration: 4000,
style: {
background: "linear-gradient(to right, #00b09b, #96c93d)",
color: "#ffffff",
fontWeight: "bold",
borderRadius: "8px"
}
}).showToast();
Также можно добавлять классы CSS через className:
Toastify({
text: "Уведомление с классом",
duration: 3000,
className: "custom-toast"
}).showToast();
Уведомление может содержать интерактивные элементы, например ссылку:
Toastify({
text: "Перейти на сайт",
duration: 5000,
destination: "https://example.com",
newWindow: true
}).showToast();
Параметры:
destination — URL, на который перейдёт пользователь при
клике.newWindow — открытие ссылки в новом окне
(true/false).Для обработки кастомных кликов можно использовать
onClick:
Toastify({
text: "Нажми на меня",
duration: 4000,
onClick: () => {
console.log("Уведомление кликнуто");
}
}).showToast();
Для организации нескольких уведомлений удобно создавать массив объектов и вызывать их циклически:
const notifications = [
{ text: "Первое", duration: 2000 },
{ text: "Второе", duration: 2500 },
{ text: "Третье", duration: 3000 }
];
notifications.forEach(notif => Toastify(notif).showToast());
Можно также реализовать очередь с задержкой между уведомлениями:
notifications.forEach((notif, index) => {
setTimeout(() => Toastify(notif).showToast(), index * 1500);
});
1. Пользовательские шаблоны
Создание HTML-тегов внутри уведомления:
Toastify({
node: (() => {
const node = document.createElement("div");
node.innerHTML = `<strong>Важное:</strong> ${"Текст уведомления"}`;
return node;
})(),
duration: 5000
}).showToast();
2. Адаптация под разные устройства
Toastify легко адаптируется под мобильные устройства через медиа-запросы в CSS или динамическую установку позиции:
const position = window.innerWidth < 600 ? "center" : "right";
Toastify({
text: "Мобильная адаптация",
position,
duration: 3000
}).showToast();
3. Расширение через пользовательские плагины
Можно создавать обёртки для повторного использования настроек:
function showSuccess(message) {
Toastify({
text: message,
duration: 3000,
style: { background: "#28a745", color: "#fff" },
close: true
}).showToast();
}
showSuccess("Операция выполнена успешно");
React:
import Toastify from 'toastify-js';
import 'toastify-js/src/toastify.css';
const handleClick = () => {
Toastify({ text: "React уведомление", duration: 3000 }).showToast();
};
Vue:
import Toastify from 'toastify-js';
import 'toastify-js/src/toastify.css';
export default {
methods: {
notify() {
Toastify({ text: "Vue уведомление", duration: 3000 }).showToast();
}
}
};
Angular:
import Toastify from 'toastify-js';
import 'toastify-js/src/toastify.css';
Toastify({
text: "Angular уведомление",
duration: 3000
}).showToast();
Для контроля отображения и удаления уведомлений можно сохранять ссылки на элементы:
const toast = Toastify({ text: "Жизненный цикл", duration: -1 }).showToast();
// закрыть через 5 секунд
setTimeout(() => toast.hideToast(), 5000);
duration: -1 позволяет сделать уведомление постоянным до
явного закрытия.
Для мультиязычных проектов текст уведомлений можно передавать через объект локализации:
const messages = {
en: "Operation completed",
ru: "Операция выполнена"
};
Toastify({
text: messages["ru"],
duration: 3000
}).showToast();
Для проекта с большим количеством уведомлений удобно создать конфигурацию по умолчанию:
const defaultToast = (options) => Toastify({
duration: 3000,
close: true,
gravity: "top",
position: "right",
style: { background: "#333", color: "#fff" },
...options
}).showToast();
defaultToast({ text: "Глобальное уведомление" });
defaultToast({ text: "Ещё одно уведомление", style: { background: "#007bff" } });
Такой подход позволяет централизованно управлять стилем и поведением всех уведомлений в проекте.