Урок 6. Введение в обработку событий Vue.js


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

Точно так же, как событие onClick в Javascript, Vue.js обеспечивает v-on:click для отслеживания событий. Если мы создадим кнопку и захотим открыть функцию, мы можем использовать v-on вот так:

<!DOCTYPE html>
<html lang="ru">
	<head>
		<meta charset="UTF-8" />
		<meta name="viewport" content="width=device-width, initial-scale=1.0" />
		<title>Vue тест upread.ru</title>
	</head>
	<body>
		<div id="app">
		<h1>{{ title }}</h1>
		<button v-on:click="doSomething()">Кликни меня!</button>
		</div>
		<script src="https://unpkg.com/vue@next"></script>
		<script src="app.js"></script>
	</body>
</html>
Этот метод можно записать в раздел методы в объекте Vue:

const App = {
	data() {
		return {
			title: 'Заголовок',
			counter: 0,
			username: 'Yurii'
		}
	},
	methods: {
		toUpperCase() {
			return this.username.toUpperCase()
		},
		doSomething() {
			alert("Ура!");
		}
	},
	computed: {
		toUpperCase() {
			return this.username.toUpperCase()
		}
	}
}

Vue.createApp(App).mount('#app')
Если нам нужно больше одного параметра, мы должны написать его так:

<button v-on:click="doSomething(2, $event)">Click me</button>
Изменение события - с помощью Модификаторов событий (Event Modifiers)

Обработка событий - это еще не все, мы также можем их изменять. В качестве примера мы создаем поле ввода и хотим считывать входные данные, когда кто-то нажимает enter или пробел:

<!DOCTYPE html>
<html lang="ru">
	<head>
		<meta charset="UTF-8" />
		<meta name="viewport" content="width=device-width, initial-scale=1.0" />
		<title>Vue тест upread.ru</title>
	</head>
	<body>
		<div id="app">
		<h1>{{ title }}</h1>
		<button v-on:click="doSomething()">Кликни меня!</button>
		<input type="text" v-on:keyup.enter.space="readInput" />
		</div>
		<script src="https://unpkg.com/vue@next"></script>
		<script src="app.js"></script>
	</body>
</html>
И Vue объект:

const App = {
	data() {
		return {
			title: 'Заголовок',
			counter: 0,
			username: 'Yurii'
		}
	},
	methods: {
		toUpperCase() {
			return this.username.toUpperCase()
		},
		doSomething() {
			alert("Ура!")
		},
		readInput: function(event) {
			alert(event.target.value)
		}
	},

	computed: {
		toUpperCase() {
			return this.username.toUpperCase()
		}
	}
}

Vue.createApp(App).mount('#app')
Мы также можем использовать .tab, .esc и некоторые другие. Но это только вершина айсберга, потому что это всего лишь модификаторы для keyup.

Экономьте время с помощью сокращений

Вместо того, чтобы писать v-on, мы можем написать @. В качестве примера: v-on: click тоже можно написать @click.

Вместо того, чтобы писать v-bind, мы можем написать :. В качестве примера: v-bind:href также может быть записано как :href.
Автор этого материала - я - Пахолков Юрий. Я оказываю услуги по написанию программ на языках Java, C++, C# (а также консультирую по ним) и созданию сайтов. Работаю с сайтами на CMS OpenCart, WordPress, ModX и самописными. Кроме этого, работаю напрямую с JavaScript, PHP, CSS, HTML - то есть могу доработать ваш сайт или помочь с веб-программированием. Пишите сюда.

тегистатьи IT, Уроки по Vue, Vue, обработка событий




Отправляя сообщение я подтверждаю, что ознакомлен и согласен с политикой конфиденциальности данного сайта.




Урок 3. Работа с базой данных в Yii2
Урок 41. Специализированные коллекции C#
Объектно-ориентированное программирование в C#: кратко о ключевых концепциях и терминологии