Для использования iziToast в проекте на Webpack необходимо сначала установить пакет через npm или yarn:
npm install izitoast --save
или
yarn add izitoast
После установки библиотека доступна для импорта в коде JavaScript.
import iziToast from 'izitoast';
import 'izitoast/dist/css/iziToast.min.css';
Важно импортировать CSS отдельно, так как iziToast не включает стили автоматически через JS. Если в проекте настроен style-loader и css-loader, стили будут автоматически применяться.
iziToast предоставляет глобальную функцию iziToast.show
для отображения уведомлений с гибкой настройкой параметров.
iziToast.show({
title: 'Успех',
message: 'Данные успешно сохранены',
position: 'topRight',
timeout: 5000,
progressBar: true,
close: true,
});
Ключевые параметры:
title – заголовок уведомления.message – основной текст уведомления.timeout – время отображения в миллисекундах (0 –
остаётся до закрытия вручную).position – положение на экране: topRight,
topLeft, bottomRight, bottomLeft,
topCenter, bottomCenter.progressBar – отображение прогресс-бара.close – показывает кнопку закрытия.iziToast поддерживает встроенные типы уведомлений, которые упрощают стилизацию:
iziToast.success({
title: 'Успех',
message: 'Операция выполнена',
});
iziToast.error({
title: 'Ошибка',
message: 'Произошла ошибка',
});
iziToast.warning({
title: 'Внимание',
message: 'Проверьте введённые данные',
});
iziToast.info({
title: 'Информация',
message: 'Это информационное уведомление',
});
Каждый тип автоматически применяет соответствующую цветовую схему и иконку.
Для Webpack-проектов удобнее определить глобальные настройки один раз и использовать их повторно:
iziToast.settings({
timeout: 4000,
position: 'topRight',
close: true,
progressBar: true,
theme: 'light', // 'light' или 'dark'
});
После этого все уведомления будут наследовать эти параметры, и их можно будет переопределять только при необходимости.
В проектах с Webpack, где используется динамический импорт или ленивые модули, iziToast можно загружать только при необходимости:
async function notifySuccess() {
const iziToast = await import('izitoast');
await import('izitoast/dist/css/iziToast.min.css');
iziToast.default.success({
title: 'Успех',
message: 'Модуль загружен динамически',
});
}
Такой подход снижает первоначальный размер бандла, особенно в крупных приложениях.
iziToast позволяет полностью кастомизировать внешний вид уведомления:
iziToast.show({
title: 'Пользовательский шаблон',
message: 'Можно вставлять HTML и кастомные кнопки',
timeout: 0,
close: false,
position: 'bottomLeft',
layout: 2,
balloon: true,
buttons: [
['<button>Закрыть</button>', function (instance, toast) {
instance.hide({ transitionOut: 'fadeOut' }, toast, 'button');
}],
['<button>Подтвердить</button>', function (instance, toast) {
console.log('Подтверждено');
instance.hide({ transitionOut: 'fadeOut' }, toast, 'button');
}]
]
});
Особенности кастомных уведомлений:
layout – структура уведомления (1–2 колонки,
возможность включать кнопки).balloon – придаёт форму “шарика” с закруглёнными
краями.buttons – массив кнопок с коллбэками.iziToast позволяет отслеживать жизненный цикл уведомлений через события:
iziToast.show({
title: 'События',
message: 'Отслеживание открытия и закрытия',
onOpening: function () { console.log('Уведомление открывается'); },
onClosing: function () { console.log('Уведомление закрывается'); },
onClosed: function () { console.log('Уведомление закрыто'); },
});
Это полезно для логирования действий пользователя или для последовательного отображения нескольких уведомлений.
В фреймворках iziToast интегрируется аналогично обычному JS:
React:
import iziToast from 'izitoast';
import 'izitoast/dist/css/iziToast.min.css';
function notify() {
iziToast.info({
title: 'React',
message: 'Уведомление из компонента React'
});
}
Vue:
import iziToast from 'izitoast';
import 'izitoast/dist/css/iziToast.min.css';
export default {
methods: {
notify() {
iziToast.success({
title: 'Vue',
message: 'Уведомление из метода компонента'
});
}
}
}
Webpack корректно обрабатывает импорт JS и CSS, позволяя интегрировать iziToast без дополнительных плагинов.
iziToast предоставляет типы через @types/izitoast, что
позволяет безопасно использовать параметры и методы:
npm install --save-dev @types/izitoast
import iziToast from 'izitoast';
iziToast.show({
title: 'TypeScript',
message: 'Все параметры строго типизированы',
});
Это предотвращает ошибки при передаче некорректных значений в настройки уведомлений.