Случайный выбор (randomizer)

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

Яркий пример — этот компонент «Случайный Выбор» (рандомайзер). Он наглядно демонстрирует, как с минимальным количеством кода на Vue можно создать динамический, отзывчивый и визуально эффектный инструмент для посетителей вашего сайта. Просто посмотрите, как он работает!

Вводите варианты, разделяя их запятой (',').

Закончив, нажмите Enter.

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

Как работает этот код? Пояснения

  1. Реактивность (ref, computed): Переменные arr, text и picked являются реактивными. Когда они меняются (например, text при вводе или picked при выборе), Vue автоматически обновляет связанные с ними части интерфейса. splitChoices — вычисляемое свойство, которое динамически преобразует введённый текст в массив для превью.
  2. Двустороннее связывание (v-model): Директива v-model="text" на textarea связывает её содержимое с реактивной переменной text. Ввод данных пользователем сразу меняет состояние приложения.
  3. Условный рендеринг v-if и циклы v-for: Шаблон гибко меняется в зависимости от состояния. v-if="text.length === 0" скрывает финальные варианты, пока идёт ввод. v-for используется для отрисовки списка вариантов как в превью, так и в финальном виде.
  4. Динамические классы :class: Класс picked динамически добавляется к элементу, чей индекс совпадает с picked.value. Это меняет цвет фона на зелёный, визуально выделяя выбранный случайным образом вариант.
  5. Обработка событий: В хуке onMounted глобально отслеживается нажатие клавиши Enter. При срабатывании происходит основная логика: парсинг вариантов, запуск и остановка «лотереи» с помощью setInterval/setTimeout.

Нужен уникальный и креативный интерактив для вашего сайта?

Этот компонент — лишь небольшая демонстрация возможностей современной фронтенд-разработки. Мы готовы создать для вас любой интерактивный элемент: от сложных динамических интерфейсов и анимированных виджетов до полномасштабных веб-приложений.

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