Как прослушать пользовательское событие vue3?

Во Vue.js версии 3 пользовательские события прослушиваются с помощью директивы v-on или сокращенной формы @.

Для прослушивания пользовательского события необходимо добавить соответствующий обработчик события в элемент или компонент. Обработчик задается с помощью выражения или функции внутри директивы v-on или @, аргументом которой является имя события:

<template>
  <div>
    <button @click="handleClick">Нажми меня</button>
  </div>
</template>

<script>
export default {
  methods: {
    handleClick() {
      console.log('Событие клика было прослушано');
    }
  }
};
</script>

В этом примере мы имеем кнопку, которая прослушивает событие click с помощью @click и вызывает метод handleClick при каждом клике на нее. Внутри метода handleClick мы можем выполнять любые действия, которые требуются в ответ на это событие.

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

<template>
  <div>
    <input v-model="message" />
    <button @click="handleClick(message)">Отправить</button>
  </div>
</template>

<script>
export default {
  data() {
    return {
      message: ''
    };
  },
  methods: {
    handleClick(message) {
      console.log('Сообщение:', message);
    }
  }
};
</script>

В этом примере мы имеем текстовое поле, связанное с данными message, и кнопку, которая прослушивает событие click. При клике на кнопку вызывается метод handleClick, которому передается значение message. Мы можем использовать это значение внутри метода для выполнения нужных нам действий.

Также важно отметить, что в Vue.js 3 обработчик события также может быть присвоен напрямую в декларативной части шаблона:

<template>
  <div>
    <button @click="() => { count += 1 }">Увеличить счетчик</button>
    <p>Счетчик: {{ count }}</p>
  </div>
</template>

<script>
export default {
  data() {
    return {
      count: 0
    };
  }
};
</script>

В этом примере мы присваиваем анонимную функцию прямо в директиву @click, которая увеличивает значение count при каждом клике на кнопку.

Таким образом, в Vue.js 3 прослушивание пользовательских событий осуществляется с помощью директивы v-on или сокращенной формы @, и можно использовать аргументы события для передачи данных обработчику события.