Для интеграции iziToast в проект на Vue необходимо использовать официальный Vue-плагин. Установка осуществляется через npm или yarn:
npm install izitoast vue-izitoast
# или
yarn add izitoast vue-izitoast
После установки подключение плагина происходит в основном файле
приложения, обычно main.js или main.ts:
import { createApp } from 'vue';
import App from './App.vue';
import VueIziToast from 'vue-izitoast';
import 'izitoast/dist/css/iziToast.min.css';
const app = createApp(App);
app.use(VueIziToast, {
position: 'topRight',
timeout: 5000,
theme: 'light'
});
app.mount('#app');
Здесь position, timeout и
theme — глобальные настройки уведомлений, которые
применяются ко всем всплывающим сообщениям по умолчанию.
После подключения iziToast через Vue-плагин, во всех компонентах
доступен объект $izitoast. Он предоставляет следующие
ключевые методы:
$izitoast.success(options) —
уведомление об успешном действии.$izitoast.error(options) — уведомление
об ошибке.$izitoast.warning(options) —
предупреждающее уведомление.$izitoast.info(options) —
информационное уведомление.$izitoast.show(options) —
универсальный метод для всех типов уведомлений с кастомными
параметрами.Пример использования в компоненте Vue:
export default {
methods: {
notifySuccess() {
this.$izitoast.success({
title: 'Успех',
message: 'Данные успешно сохранены',
timeout: 3000,
position: 'bottomLeft'
});
},
notifyError() {
this.$izitoast.error({
title: 'Ошибка',
message: 'Произошла ошибка при сохранении',
timeout: 4000
});
}
}
}
Ключевой момент: параметры, переданные в метод уведомления, переопределяют глобальные настройки плагина только для этого конкретного вызова.
При подключении VueIziToast через app.use() можно
задавать глобальные настройки, влияющие на все уведомления:
position — расположение уведомления
(topRight, topLeft, bottomRight,
bottomLeft, topCenter,
bottomCenter).timeout — длительность отображения уведомления в
миллисекундах.theme — тема (light или
dark).transitionIn / transitionOut — анимации
появления и скрытия (fadeIn, fadeOut,
slideInLeft, bounceIn, и т.д.).close — наличие кнопки закрытия.Пример глобальной конфигурации с анимацией:
app.use(VueIziToast, {
position: 'topRight',
timeout: 5000,
theme: 'dark',
transitionIn: 'bounceInRight',
transitionOut: 'fadeOut'
});
Кроме стандартных настроек, можно использовать широкий набор опций для одного уведомления:
title — заголовок.message — текст сообщения.icon — кастомная иконка ('fa fa-check',
'fa fa-times').backgroundColor — цвет фона.color — цвет текста.position — переопределяет глобальное расположение.timeout — переопределяет глобальное время показа.overlay — затемнение фона под уведомлением
(true/false).buttons — добавление кнопок действия с
callback-функциями.Пример уведомления с кнопкой:
this.$izitoast.show({
title: 'Подтверждение',
message: 'Вы действительно хотите удалить элемент?',
timeout: false,
buttons: [
['<button>Удалить</button>', (instance, toast) => {
console.log('Элемент удалён');
instance.hide({ transitionOut: 'fadeOut' }, toast, 'button');
}, true],
['<button>Отмена</button>', (instance, toast) => {
instance.hide({ transitionOut: 'fadeOut' }, toast, 'button');
}]
]
});
Vue-плагин позволяет отслеживать ключевые события уведомлений:
onOpening — при начале показа уведомления.onOpened — после завершения анимации появления.onClosing — при начале скрытия.onClosed — после завершения скрытия.Пример с обработкой события закрытия:
this.$izitoast.info({
title: 'Информация',
message: 'Эта подсказка закроется через 3 секунды',
onClosed: () => {
console.log('Уведомление закрыто');
}
});
VueIziToast позволяет создавать уведомления локально внутри компонента без зависимости от глобальных настроек. Для этого можно импортировать iziToast напрямую:
import iziToast from 'izitoast';
import 'izitoast/dist/css/iziToast.min.css';
iziToast.success({
title: 'Локальное уведомление',
message: 'Отображается только внутри этого компонента',
position: 'bottomRight'
});
Это полезно для случаев, когда нужно полностью контролировать
уведомление и не использовать глобальный $izitoast.
Для проектов на Vue 3 с Composition API уведомления могут быть
интегрированы через setup:
import { getCurrentInstance } from 'vue';
export default {
setup() {
const { proxy } = getCurrentInstance();
const notify = () => {
proxy.$izitoast.success({
title: 'Готово',
message: 'Операция выполнена через Composition API'
});
};
return { notify };
}
}
При использовании Vuex уведомления удобно вызывать в экшенах или
мутациях, передавая доступ к $izitoast через контекст
компонента.
Если хочешь, я могу подготовить дополнительный раздел с примерами сложных кастомных уведомлений с кнопками, прогресс-барами и интерактивными элементами для Vue-плагина iziToast. Это будет прямо учебник на продвинутом уровне.
Хочешь, чтобы я это сделал?