Vディレクティブとは、テンプレート(HTML)内で動的な仕組みを要素に与えるための属性です。v-で始まる属性により、Vueのテンプレート構文内で特別な動作を定義するために使われます。
v-onディレクティブは、イベントリスナーをHTML要素にバインドするための構文で、ユーザーの操作(クリック、キー入力、マウス移動など)に応じて、Vueのメソッドを実行することができます。
<button v-on:click="countFuc">クリック</button>
// buttonがクリックされたときにcountFucメソッドを呼び出します
<button @click="countFuc">クリック</button>
// @ で省略
<template>
<button @click="handleClick">クリック</button>
<input @input="handleInput" @blur="handleBlur" />
</template>
<script setup>
function handleClick() {
console.log('クリックされました');
}
function handleInput(event) {
console.log('入力中:', event.target.value);
}
function handleBlur() {
console.log('フォーカスが外れました');
}
</script>
■マウス操作岐
■キーボード操作
■フォーム操作
■その他
v-v-onディレクティブは、Vue2と基本的に同じですが、Composition API(setup() )にも対応していて、書きやすい構文になりました。また、ref()でリアクティブな変数を作ることより、効率よくコード記述ができると思います。
<template>
<div>
<p>カウント: {{ count }}</p>
<button @:click="increment">カウントアップ</button>
</div>
</template>
<script>
export default {
data() {
return {
count: 0
};
},
methods: {
increment() {
this.count++;
}
}
};
</script>
<template>
<div>
<p>カウント: {{ count }}</p>
<button @click="increment">カウントアップ</button>
</div>
</template>
<script setup>
import { ref } from 'vue';
const count = ref(0);
const increment = () => {
count.value++;
};
</script>
イベント修飾子は、v-onディレクティブに続けて追加の条件指定や振る舞いを変えるため、いわば「動作内容」を調整するオプションです。「イベントを監視する」役割はv-on、「動作内容」を調整する追加指定が修飾子という関係です。
<!-- イベントのデフォルト動作を防ぐ -->
<a @click.prevent.stop = "submit">送信</a>
・@submit でsubmitイベント(値)を監視
・prevent でsubmitのデフォルト動作(ページ遷移)を防ぐ
・stop でイベントのバブリングを止める
いかがでしたでしょうか。今回は、JavaScriptフレームワークVueのリアクティブv-onについてご紹介させていただきました。v-onは、ユーザーの操作(クリック・キー入力・マウス移動など)に応じて、Vueのメソッドを実行するディレクティブで、Vueのアプリ開発にはめちゃくちゃ利用するリアクティブですね。
以上となります。できる限りわかりやすく伝えようとしても書くのは難しいです。
コードや記事の書き方について気になるところがあれば、アドバイスいただけると嬉しいです。
要件定義からブラッシュアップ/実装運用まで一貫して担当。また内部対策を中心に、GTM・GA4・Looker Studioと分析・改善案の策定も進めています。北緯43度マルチエンジニア