Индикатор выполнения

Создание интерактивного и визуально приятного индикатора выполнения (Stepper) с помощью обычного JavaScript может потребовать много кода. Vue.js значительно упрощает эту задачу! Его реактивность и декларативный подход позволяют создать динамический компонент, где состояние интерфейса (прогресс, активные шаги) автоматически синхронизируется с данными. Ниже на этой странице представлен готовый индикатор и вы можете изучить его чистый и понятный код.

{{ index += 1 }}

Внимание! Представленный код — это готовый компонент, но для его работы на странице должен быть установлен и подключен фреймворк Vue. Если вы начинающий разработчик, просто добавьте строку
<script src="https://unpkg.com/vue@3/dist/vue.global.js"></script>
в раздел <head> вашего HTML, и всё заработает.

Работа индикатора выполнения на Vue.js

Код, представленный выше — наглядный пример мощи и простоты Vue.js. Давайте разберем его логику.

1. Структура и реактивность

В основе лежат реактивные переменные, объявленные с помощью ref():

  1. step_current — отслеживает текущий активный шаг.
  2. steps — общее количество шагов.

При изменении step_current Vue автоматически обновляет все части интерфейса, которые от него зависят.

2. Динамическое отображение прогресса

Сердце индикатора — вычисляемое свойство calcScale. Оно динамически рассчитывает ширину заполненной части шкалы (progress__scale) в процентах, основываясь на текущем шаге и общем количестве шагов. Это происходит автоматически при каждом изменении step_current.

3. Визуализация активных шагов

Для отображения пройденных шагов используется директива v-for для генерации кружков и динамический класс :class. Условие {'circle--active': index <= step_current-1} подкрашивает границу кружка в синий цвет, если его индекс меньше или равен текущему шагу.

4. Управление состоянием кнопок

Кнопки Пред. и След. также реактивны. Их активность и возможность нажатия (disabled) зависят от текущего шага. Например, кнопка Пред. неактивна, когда мы на первом шаге. Логика переключения шагов инкапсулирована в простых функциях handlePrev и handleNext.

Готовы внедрить современные UI-компоненты в ваш проект?

Показанный индикатор выполнения — лишь один из множества элементов, которые мы создаем для наших клиентов, разрабатывая им сайты. Каждый компонент проектируется с учетом:

  • Вашего бренда — идеально вписывается в дизайн-систему
  • Бизнес-логики — решает конкретные задачи вашего проекта
  • Пользовательского опыта — обеспечивает интуитивно понятное взаимодействие
  • Технической надежности — стабильно работает на всех устройствах

Не тратьте время на поиск готовых решений!

Наша веб-студия разработает для вас уникальные, качественные и полностью адаптивные UI-компоненты, которые повысят конверсию и улучшат пользовательский опыт.