1. ASHIRIのふろんとあれ、なんだっけぇ
  2. なんだっけぇ一覧
  3. javascript
  4. 【Vue基礎】v-onディレクティブを理解する

【Vue基礎】v-onディレクティブを理解する

CATEGORY : javascript
【Vue基礎】v-onディレクティブを理解する 【Vue基礎】v-onディレクティブを理解する
今回は、JavaScriptフレームワークVueのディレクティブ、Vディレクティブの中でも頻繁に使用されるv-onについて紹介致します。
目次

    Vディレクティブとは

    Vディレクティブとは、テンプレート(HTML)内で動的な仕組みを要素に与えるための属性です。v-で始まる属性により、Vueのテンプレート構文内で特別な動作を定義するために使われます。

     

    【v-on】イベントリスナーをテンプレート内で設定する

    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>
    

     

    よく使われるイベント名

     

    ■マウス操作岐

    • click
      クリックされたとき
    • dblclick
      ダブルクリックされたとき
    • mousedown
      マウスボタンが押されたとき
    • mouseup
      マウスボタンが離されたとき
    • mouseenter
      要素にマウスが入ったとき
    • mouseleave
      要素からマウスが出たとき
    • mousemove
      マウスが動いたとき

     

    ■キーボード操作

    • keydown
      キーが押されたとき
    • keyup
      キーが離されたとき

     

    ■フォーム操作

    • input
      入力されたとき
    • change
      値が変わって確定したとき
    • focus
      フォーカスされたとき
    • blur
      フォーカスが外れたとき
    • submit
      フォームが送信されたとき

     

    ■その他

    • scroll
      スクロールされたとき

     

    Vue3とVue2でのv-onコードの違い

    v-v-onディレクティブは、Vue2と基本的に同じですが、Composition API(setup() )にも対応していて、書きやすい構文になりました。また、ref()でリアクティブな変数を作ることより、効率よくコード記述ができると思います。

     

    ■Options API(従来スタイル)

     

    
    <template>
      <div>
        <p>カウント: {{ count }}</p>
        <button @:click="increment">カウントアップ</button>
      </div>
    </template>
    
    <script>
    export default {
      data() {
        return {
          count: 0
        };
      },
      methods: {
        increment() {
          this.count++;
        }
      }
    };
    </script>
    

     

    ■Composition API(setup())

     

    
    <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 でイベントのバブリングを止める

     

    よく使われるイベント修飾子

    • .stop
      event.stopPropagation()=バブリングを止める
    • .prevent
      event.preventDefault()=ページ遷移などデフォルト動作を止める
    • .self
      イベント発生元が自身の要素だけの場合に実行
    • .once
      最初の一回だけ実行

     

     

    まとめ

    いかがでしたでしょうか。今回は、JavaScriptフレームワークVueのリアクティブv-onについてご紹介させていただきました。v-onは、ユーザーの操作(クリック・キー入力・マウス移動など)に応じて、Vueのメソッドを実行するディレクティブで、Vueのアプリ開発にはめちゃくちゃ利用するリアクティブですね。

    以上となります。できる限りわかりやすく伝えようとしても書くのは難しいです。
    コードや記事の書き方について気になるところがあれば、アドバイスいただけると嬉しいです。

    【Vue基礎】v-onディレクティブを理解する
    CATEGORY : javascript

    アシリソリューション

    アシリソリューション

    アシリ・ソリューション

    要件定義からブラッシュアップ/実装運用まで一貫して担当。また内部対策を中心に、GTM・GA4・Looker Studioと分析・改善案の策定も進めています。北緯43度マルチエンジニア

    最近のなんだっけぇ

    1. 【Vue基礎】v-onディレクティブを理解する

      【Vue基礎】v-onディレクティブを理解する

    2. 【Vue基礎】v-modelディレクティブを理解する

      【Vue基礎】v-modelディレクティブを理解する

    3. 【javaScript基礎】reduce メソッドを理解する

      【javaScript基礎】reduce メソッドを理解する

    4. 【Vue基礎】Vueリアクティブを理解する

      【Vue基礎】Vueリアクティブを理解する

    5. 【Vue基礎】算出プロパティcomputedを理解する

      【Vue基礎】算出プロパティcomputedを理解する

    6. 【PHP基礎】よく使う文字列操作関数

      【PHP基礎】よく使う文字列操作関数

    1. API
    2. computed
    3. css
    4. ECMA
    5. javascript
    6. jquery
    7. php
    8. reactive
    9. reduce メソッド
    10. ref
    11. sass
    12. SSH
    13. v-bind
    14. v-on
    15. Vue
    16. Vディレクティブ
    17. wordpress
    18. セキュリティ対策
    19. 入れ子
    20. 繰り返し処理
    21. 関数