Конфигурация сообщений и уведомлений

В библиотеке Element Plus управление уведомлениями и сообщениями осуществляется через компоненты ElMessage, ElNotification и их методы конфигурации. Эти инструменты позволяют создавать как простые всплывающие уведомления, так и более сложные кастомизированные сообщения с различными уровнями интерактивности и стилями отображения.


1. Основные компоненты

ElMessage — компонент для мгновенных всплывающих сообщений. Используется для уведомления о действиях пользователя или результатах операций.

ElNotification — компонент для более сложных уведомлений, с возможностью указания заголовка, типа и дополнительных действий.

Оба компонента предоставляют глобальные методы, позволяющие создавать уведомления программно:

import { ElMessage, ElNotification } from 'element-plus';

// Пример простого сообщения
ElMessage({
  message: 'Операция выполнена успешно',
  type: 'success',
  duration: 3000
});

// Пример уведомления
ElNotification({
  title: 'Внимание',
  message: 'Необходимо проверить введенные данные',
  type: 'warning',
  duration: 5000
});

2. Параметры конфигурации сообщений

ElMessage принимает следующие ключевые параметры:

  • message — текст сообщения.
  • type — тип уведомления: success, warning, info, error.
  • duration — время отображения в миллисекундах; значение 0 делает сообщение постоянным.
  • showClose — отображение кнопки закрытия (true/false).
  • center — выравнивание текста по центру.
  • dangerouslyUseHTMLString — возможность использовать HTML в сообщении.

Пример использования с кастомными параметрами:

ElMessage({
  message: '<strong>Ошибка!</strong> Неверные данные',
  type: 'error',
  duration: 5000,
  showClose: true,
  dangerouslyUseHTMLString: true
});

Важно: параметр dangerouslyUseHTMLString следует использовать осторожно, чтобы избежать XSS-уязвимостей.


3. Параметры конфигурации уведомлений

ElNotification поддерживает расширенные параметры:

  • title — заголовок уведомления.
  • message — текст уведомления.
  • type — тип: success, warning, info, error.
  • position — позиция на экране: top-right, top-left, bottom-right, bottom-left.
  • duration — время отображения; при 0 уведомление остаётся до закрытия вручную.
  • offset — смещение от края экрана, полезно при нескольких уведомлениях.
  • showClose — отображение кнопки закрытия.
  • onClick — функция-обработчик клика по уведомлению.
  • onClose — функция-обработчик закрытия уведомления.

Пример уведомления с кастомной позицией и обработчиками событий:

ElNotification({
  title: 'Системное сообщение',
  message: 'Произошло обновление данных',
  type: 'info',
  position: 'bottom-left',
  duration: 7000,
  showClose: true,
  onClick: () => {
    console.log('Уведомление было кликнуто');
  },
  onClose: () => {
    console.log('Уведомление закрыто');
  }
});

4. Глобальная конфигурация сообщений и уведомлений

Для единого стиля всех сообщений и уведомлений можно настроить глобальные параметры. Например, изменение времени отображения по умолчанию или позиционирования:

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
};

Особенности глобальной конфигурации:

  • Применяется ко всем последующим вызовам сообщений и уведомлений.
  • Позволяет централизованно управлять стилем и поведением без изменения каждого вызова.
  • Может использоваться для единообразного UX в проекте.

5. Использование программных методов для сложной логики

Помимо прямого вызова ElMessage и ElNotification, можно использовать методы с промисами и таймерами для последовательных уведомлений или условного отображения:

const messages = [
  { message: 'Сначала', type: 'info' },
  { message: 'Затем', type: 'warning' },
  { message: 'Наконец', type: 'success' }
];

messages.forEach((msg, index) => {
  setTimeout(() => {
    ElMessage(msg);
  }, index * 2000);
});

Такой подход позволяет создавать цепочки сообщений без необходимости вручную управлять временем каждого уведомления.


6. Кастомизация стилей сообщений и уведомлений

Для глубокого контроля внешнего вида можно использовать CSS-переменные и классы:

ElNotification({
  title: 'Кастомный стиль',
  message: 'Сообщение с уникальными стилями',
  type: 'info',
  customClass: 'my-notification'
});
.my-notification {
  background-color: #f0f9ff;
  border-left: 4px solid #409eff;
  font-size: 14px;
}

Особенности:

  • customClass применяется ко всему контейнеру уведомления.
  • Позволяет интегрировать фирменный стиль проекта.
  • Может использоваться для изменения цветовой схемы, шрифтов и отступов.

7. Практические рекомендации

  • Использовать duration: 0 только для критических уведомлений, требующих ручного закрытия.
  • Различать типы сообщений (success, error, info, warning) для улучшения восприятия пользователем.
  • Не злоупотреблять dangerouslyUseHTMLString; предпочтительно использовать текстовое содержимое.
  • Настраивать глобальные параметры при масштабных проектах для единообразия UX.
  • Использовать кастомные классы для интеграции с фирменным дизайном.

Эта система позволяет создавать гибкую, управляемую и визуально согласованную схему уведомлений и сообщений, обеспечивая удобное взаимодействие пользователя с интерфейсом в проектах на Vue 3 с Element Plus.