クリックイベント・キーイベント

date
Mar 5, 2023
repo_url
slug
click-key-event
status
Published
summary
type
Post
thumbnail_url
tags
vue
outer_link
Vueでは以下のように、クリックイベントとキーイベントに専用の修飾子が用意されている。
<script setup lang="ts">
import {ref} from "vue";

const msg = ref("まだです!");
const onEnterKey = (): void => {
	msg.value = "エンターキーが押下されました。";
};
const onRightButtonClick = (): void => {
	msg.value = "ボタンが右クリックされました。";
};
const onShiftClick = (): void => {
	msg.value = "シフトを押しながらクリックされました。";
};
</script>

<template>
	<p>{{msg}}</p>
	<input type="text" v-on:keydown.enter="onEnterKey"><br>
	<button v-on:click.right="onRightButtonClick">右クリック</button><br>
	<button v-on:click.shift="onShiftClick">シフトを押しながらクリック</button><br>
</template>
 

キーイベントの装飾子

keydown 以外にもkeypress keyup といったキーイベントには、押されたキーに対応する装飾子を以下のようにさらに付与できる。
<!--[Qキーが押された際のイベントを設定]-->
v-on:keydown.q="..."
アルファベットでないキー(キーエイリアス)は以下のように用意されている。

clickイベントの修飾子

v-on:click.right のようにclickイベントと組み合わせる修飾子には、以下のようなものが用意されている。

システム修飾子

v-on:click.shift などはシステム修飾子と呼ばれる。
他には以下のようなものが用意されている。
※このボタン
notion image
 

exact修飾子

v-on:keydown.enter=”…” ←この場合だと例えば[Shift]+[Enter]などでもイベントが発生してしまう。
これを[Enter]のみに限定したい場合に.exact 修飾子を使う。
v-on:keydown.enter.exact="onEnterKey"

© Hayato Kamiyama 2023 - 2024 - Build with Next.js & Notion