Перед тем как начать работу с библиотекой Vex, необходимо её установить. Для этого используйте менеджер пакетов npm или yarn. Для установки через npm выполните команду:
npm install vex-js
Для использования с ES-модулями подключите библиотеку следующим образом:
import vex from 'vex-js';
import 'vex-js/dist/css/vex.css';
Если вы используете обычный <script> тег, то можно
подключить библиотеку и её стили:
<script src="https://cdn.jsdelivr.net/npm/vex-js@4.4.0/dist/vex.min.js"></script>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/vex-js@4.4.0/dist/css/vex.css">
После установки библиотеки и её подключения можно приступать к созданию первого примера.
Библиотека Vex предоставляет простое и гибкое API для создания модальных окон, уведомлений и других взаимодействий с пользователем. Начнём с самого базового примера — создания модального окна.
Для создания модального окна в Vex достаточно вызвать метод
vex.dialog.open(), передав в качестве параметра настройки.
Например:
vex.dialog.open({
message: 'Это простое модальное окно.',
buttons: [
$.extend({}, vex.dialog.buttons.YES, {
text: 'Закрыть'
})
]
});
Этот код создаст простое модальное окно с текстом и одной кнопкой “Закрыть”. Кнопка будет закрывать окно при нажатии.
Метод open принимает объект с настройками, позволяющими
конфигурировать окно по вашему усмотрению:
text, className, click.Пример с несколькими кнопками:
vex.dialog.open({
message: 'Вы уверены, что хотите продолжить?',
buttons: [
$.extend({}, vex.dialog.buttons.YES, {
text: 'Да',
click: function() {
console.log('Пользователь нажал Да');
}
}),
$.extend({}, vex.dialog.buttons.NO, {
text: 'Нет',
click: function() {
console.log('Пользователь нажал Нет');
}
})
]
});
В этом примере мы создали два варианта ответа: “Да” и “Нет”. При клике на любую из кнопок в консоль будет выведено соответствующее сообщение.
Помимо стандартных параметров, можно настроить дополнительные опции для более гибкой работы с окнами.
Пример с дополнительными опциями:
vex.dialog.open({
message: 'Хотите ли вы закрыть это окно?',
escapeButton: true,
overlayClosesOnClick: true,
showCloseButton: true,
buttons: [
$.extend({}, vex.dialog.buttons.YES, {
text: 'Закрыть окно'
})
]
});
В этом примере окно можно закрыть как по нажатию на кнопку, так и по клику вне окна или с помощью клавиши Escape.
Модальные окна могут также содержать формы, которые можно использовать для сбора информации от пользователя. Для этого Vex позволяет вставлять HTML-формы прямо в тело модального окна.
Пример создания формы:
vex.dialog.open({
message: 'Введите ваше имя:',
input: '<input name="username" type="text" placeholder="Имя">',
buttons: [
$.extend({}, vex.dialog.buttons.YES, {
text: 'Отправить'
}),
$.extend({}, vex.dialog.buttons.NO, {
text: 'Отмена'
})
],
callback: function(data) {
if (data) {
console.log('Введённое имя: ' + data.username);
} else {
console.log('Пользователь отменил ввод');
}
}
});
В этом примере модальное окно отображает поле ввода и два варианта
кнопок: отправить данные или отменить. После отправки формы в колбэк
передаётся объект данных с полем username, содержащим
введённое значение.
Библиотека Vex позволяет настраивать внешний вид модальных окон с помощью CSS. Вы можете использовать стандартные классы для изменения стилей окон и кнопок. Например, можно изменить цвет фона модального окна:
.vex {
background-color: #f0f0f0;
}
Также можно добавить пользовательские стили для кнопок:
.vex-button {
background-color: #4CAF50;
color: white;
}
Эти стили будут применяться ко всем элементам модальных окон, которые создаются с помощью Vex.
Кроме модальных окон, Vex может быть использован для создания простых
уведомлений. Библиотека предоставляет метод vex.notify(),
который позволяет показывать уведомления на экране.
Пример уведомления:
vex.notify({
message: 'Ваши изменения были сохранены.',
className: 'vex-theme-wireframe',
duration: 3000
});
Уведомление будет показываться на экране в течение 3 секунд. В
параметре className можно указать тему уведомления, а в
duration — продолжительность отображения уведомления.
Работа с библиотекой Vex достаточно проста и интуитивно понятна. Она позволяет быстро создавать модальные окна, формы и уведомления с минимальными усилиями. Большое количество опций и настроек делают её гибким инструментом для взаимодействия с пользователем на веб-страницах.