Библиотека Driver.js решает задачу создания интерактивных туров по интерфейсу: подсветка элементов, поясняющие тултипы, управление шагами. Однако в ряде случаев требуется иной функционал:
В таких ситуациях применяются альтернативные библиотеки, каждая из которых ориентирована на собственный набор задач.
Shepherd.js — одна из наиболее популярных альтернатив, ориентированная на создание сложных пользовательских туров.
Ключевые особенности:
Пример использования:
import Shepherd from 'shepherd.js';
const tour = new Shepherd.Tour({
defaultStepOptions: {
scrollTo: true,
cancelIcon: {
enabled: true
}
}
});
tour.addStep({
id: 'step-1',
text: 'Описание элемента',
attachTo: {
element: '.button',
on: 'bottom'
},
buttons: [
{
text: 'Далее',
action: tour.next
}
]
});
tour.start();
Преимущества перед Driver.js:
Недостатки:
Intro.js — компактное и простое решение для создания туров и onboarding-сценариев.
Ключевые особенности:
Пример:
<div data-intro="Это кнопка" data-step="1">Кнопка</div>
introJs().start();
Преимущества:
Недостатки:
Hopscotch — библиотека от LinkedIn, предназначенная для создания guided tours.
Ключевые особенности:
Пример:
const tour = {
id: "tour",
steps: [
{
target: "element-id",
title: "Заголовок",
content: "Описание",
placement: "bottom"
}
]
};
hopscotch.startTour(tour);
Преимущества:
Недостатки:
React Joyride — специализированное решение для приложений на React.
Ключевые особенности:
Пример:
import Joyride from 'react-joyride';
function App() {
const steps = [
{
target: '.my-element',
content: 'Описание элемента'
}
];
return <Joyride steps={steps} />;
}
Преимущества:
Недостатки:
Vue Tour — аналогичный инструмент для Vue.js-приложений.
Ключевые особенности:
Пример:
import VueTour from 'vue-tour';
Vue.use(VueTour);
<v-tour :steps="steps"></v-tour>
Преимущества:
Недостатки:
В ряде случаев использование готовой библиотеки нецелесообразно. Тогда применяется связка:
Преимущества:
Недостатки:
Tippy.js — библиотека для создания tooltip’ов, которую можно использовать как базу для туров.
Пример:
tippy('.element', {
content: 'Подсказка',
trigger: 'manual'
});
При последовательном управлении показом тултипов формируется собственный tour-движок.
Преимущества:
Недостатки:
Onboard.js ориентирован на onboarding-процессы и пользовательские сценарии.
Ключевые особенности:
Преимущества:
Недостатки:
| Библиотека | Гибкость | Простота | Размер | Поддержка фреймворков |
|---|---|---|---|---|
| Driver.js | Средняя | Высокая | Малый | Универсальная |
| Shepherd.js | Высокая | Средняя | Средний | Универсальная |
| Intro.js | Низкая | Очень высокая | Малый | Универсальная |
| Hopscotch | Средняя | Средняя | Средний | Ограниченная |
| React Joyride | Высокая | Средняя | Средний | React |
| Vue Tour | Высокая | Средняя | Средний | Vue |
| Floating UI | Максимальная | Низкая | Минимальный | Любая |
Простые onboarding-сценарии:
Сложные туры с логикой:
SPA-приложения:
Максимальная кастомизация:
Продуктовая аналитика и onboarding:
В сравнении с альтернативами Driver.js может уступать в следующих аспектах:
Эти ограничения становятся критичными в крупных SPA-приложениях, где требуется тесная связь тура с состоянием интерфейса.
На практике часто используется гибридный подход:
Такой подход позволяет оптимизировать баланс между скоростью разработки и гибкостью системы.