В библиотеке Element Plus управление уведомлениями и
сообщениями осуществляется через компоненты ElMessage,
ElNotification и их методы конфигурации. Эти инструменты
позволяют создавать как простые всплывающие уведомления, так и более
сложные кастомизированные сообщения с различными уровнями
интерактивности и стилями отображения.
ElMessage — компонент для мгновенных всплывающих сообщений. Используется для уведомления о действиях пользователя или результатах операций.
ElNotification — компонент для более сложных уведомлений, с возможностью указания заголовка, типа и дополнительных действий.
Оба компонента предоставляют глобальные методы, позволяющие создавать уведомления программно:
import { ElMessage, ElNotification } from 'element-plus';
// Пример простого сообщения
ElMessage({
message: 'Операция выполнена успешно',
type: 'success',
duration: 3000
});
// Пример уведомления
ElNotification({
title: 'Внимание',
message: 'Необходимо проверить введенные данные',
type: 'warning',
duration: 5000
});
ElMessage принимает следующие ключевые параметры:
success,
warning, info, error.0 делает сообщение постоянным.true/false).Пример использования с кастомными параметрами:
ElMessage({
message: '<strong>Ошибка!</strong> Неверные данные',
type: 'error',
duration: 5000,
showClose: true,
dangerouslyUseHTMLString: true
});
Важно: параметр
dangerouslyUseHTMLString следует использовать осторожно,
чтобы избежать XSS-уязвимостей.
ElNotification поддерживает расширенные параметры:
success,
warning, info, error.top-right, top-left,
bottom-right, bottom-left.0
уведомление остаётся до закрытия вручную.Пример уведомления с кастомной позицией и обработчиками событий:
ElNotification({
title: 'Системное сообщение',
message: 'Произошло обновление данных',
type: 'info',
position: 'bottom-left',
duration: 7000,
showClose: true,
onClick: () => {
console.log('Уведомление было кликнуто');
},
onClose: () => {
console.log('Уведомление закрыто');
}
});
Для единого стиля всех сообщений и уведомлений можно настроить глобальные параметры. Например, изменение времени отображения по умолчанию или позиционирования:
import { ElMessage, ElNotification } from 'element-plus';
// Настройка ElMessage по умолчанию
ElMessage.defaults = {
duration: 4000,
showClose: true,
center: true
};
// Настройка ElNotification по умолчанию
ElNotification.defaults = {
duration: 6000,
position: 'top-right',
showClose: true
};
Особенности глобальной конфигурации:
Помимо прямого вызова ElMessage и
ElNotification, можно использовать методы с промисами и
таймерами для последовательных уведомлений или условного
отображения:
const messages = [
{ message: 'Сначала', type: 'info' },
{ message: 'Затем', type: 'warning' },
{ message: 'Наконец', type: 'success' }
];
messages.forEach((msg, index) => {
setTimeout(() => {
ElMessage(msg);
}, index * 2000);
});
Такой подход позволяет создавать цепочки сообщений без необходимости вручную управлять временем каждого уведомления.
Для глубокого контроля внешнего вида можно использовать CSS-переменные и классы:
ElNotification({
title: 'Кастомный стиль',
message: 'Сообщение с уникальными стилями',
type: 'info',
customClass: 'my-notification'
});
.my-notification {
background-color: #f0f9ff;
border-left: 4px solid #409eff;
font-size: 14px;
}
Особенности:
customClass применяется ко всему контейнеру
уведомления.duration: 0 только для критических
уведомлений, требующих ручного закрытия.success, error,
info, warning) для улучшения восприятия
пользователем.dangerouslyUseHTMLString;
предпочтительно использовать текстовое содержимое.Эта система позволяет создавать гибкую, управляемую и визуально согласованную схему уведомлений и сообщений, обеспечивая удобное взаимодействие пользователя с интерфейсом в проектах на Vue 3 с Element Plus.