JavaScript - Пользовательские собыя: руковод для начинающих

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

JavaScript - Custom Events

Что такое Пользовательские собыния?

Прежде чем мы углубимся в детали, давайте поймем, что такое Пользовательские собы尼亚. Представьте, что вы на вечеринке ( потерпите, я обещаю, что эта аналогия будет иметь смысл). На этой вечеринке происходят естественные вещи - люди приходят, играет музыка, едят закуски. Это как内置 собыния в JavaScript, такие как клики или нажатия клавиш.

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

Why Use Custom Events? (Why Use Custom Events? - Why Use Custom Events?)

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

  1. Создания модульного и desconнектного кода
  2. Улучшения коммуникации между различными частями вашего приложения
  3. Увеличения гибкости и расширяемости вашего кода

Теперь, давайте натянем рукава и рассмотрим несколько примеров!

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

Давайте начнем с простого пользовательского собыния. Мы создадим собыние под названием "partyStarted".

// Создаем пользовательское собыние
let partyEvent = new Event('partyStarted');

// Добавляем обработчик собыний
document.addEventListener('partyStarted', function() {
console.log('Давайте начнем вечеринку!');
});

// Инициируем собыние
document.dispatchEvent(partyEvent);

Давайте разберем это:

  1. Мы создаем новый объект Event под названием partyEvent.
  2. Мы добавляем обработчик собыний к document, который слушает наше собыние 'partyStarted'.
  3. Когда собыние слышится, оно выводит "Давайте начнем вечеринку!" в консоль.
  4. Наконец, мы инициируем собыние, что запускает наш обработчик.

Если вы запустите этот код, вы увидите "Давайте начнем вечеринку!" в вашей консоли. Поздравляю! Вы только что создали и использовали свое первое пользовательское собыние.

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

Теперь давайте добавим немного больше функциональности. Что, если мы хотим передать данные вместе с нашим собынием? Встречайте CustomEvent!

// Создаем пользовательское собыние с данными
let danceOffEvent = new CustomEvent('danceOff', {
detail: {
song: 'Stayin\' Alive',
dancer: 'John Travolta'
}
});

// Добавляем обработчик собыний
document.addEventListener('danceOff', function(e) {
console.log(`Пора танцевать! ${e.detail.dancer} танцует под ${e.detail.song}`);
});

// Инициируем собыние
document.dispatchEvent(danceOffEvent);

В этом примере:

  1. Мы создаем CustomEvent под названием danceOffEvent. Второй аргумент - это объект, где мы можем добавить свойство detail с любыми данными, которые мы хотим передать.
  2. Наш обработчик собыний теперь принимает объект собыний e, который содержит наши данные в e.detail.
  3. Когда мы инициируем собыние, наш обработчик выводит сообщение, используя переданные данные.

Запустите этот код, и вы увидите: "Пора танцевать! John Travolta танцует под Stayin' Alive"

Пример: Условное инициирование собыний

Давайте добавим немного логики в момент инициирования нашего собыния. Мы создадим собыние "snacksGone", которое срабатывает только когда у нас кончаются закуски.

let snacks = 5;

function eatSnack() {
if (snacks > 0) {
snacks--;
console.log(`Вкусно! Оставшиеся закуски: ${snacks}`);
}

if (snacks === 0) {
let snacksGoneEvent = new Event('snacksGone');
document.dispatchEvent(snacksGoneEvent);
}
}

document.addEventListener('snacksGone', function() {
console.log('О нет! Закусок больше нет. Пора заказать еще!');
});

// Давайте съедим закуски!
for (let i = 0; i < 6; i++) {
eatSnack();
}

Вот что происходит:

  1. Мы начинаем с 5 закусок.
  2. Функция eatSnack уменьшает количество закусок и выводит, сколько их осталось.
  3. Если закуски кончаются, она создает и инициирует собыние 'snacksGone'.
  4. У нас есть обработчик собыний, ждущий 'snacksGone', который выводит сообщение, когда собыние срабатывает.
  5. Мы используем цикл, чтобы съесть 6 закусок (одну больше, чем у нас есть).

Когда вы запустите это, вы увидите, как количество закусок уменьшается, и когда оно дойдет до 0, вы увидите сообщение "О нет!"

Заключение

И вот оно, ребята! Вы только что узнали основы Пользовательских собыний в JavaScript. Давайте вспомним основные методы, которые мы использовали:

Метод Описание
new Event() Создает новое собыние
new CustomEvent() Создает новое пользовательское собыние, которое может携带 данные
addEventListener() Слушает собыние
dispatchEvent() Инициирует собыние

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

Помните, программирование как обучение танцам - это требует практики, но как только вы поймете его, вы будете танцевать в кратчайшие сроки. Продолжайте программировать, будьте любопытны и, самое главное, получайте удовольствие!

Credits: Image by storyset