Vue v-onディレクティブの使用について

Vue v-onディレクティブの使用について

1. イベントのリスニング

v-onディレクティブを使用すると、 DOMイベントをリッスンし、トリガーされたときにJavaScriptコードを実行できます。イベント コードは v-on の直後に配置することも、関数として記述することもできます。

サンプルコードは次のとおりです。

<div id="アプリ">
  <p>{{カウンター}}</p>
  <button @click="counter += 1">+1</button>
  <button @click="減算(10)">-10</button>
</div>
<スクリプト>
  constアプリ = 新しいVue({
    el: "#app",
    データ: {
      カウンター: 0
    },
    メソッド: {
      減算(値){
        this.counter -= 値
      }
    }
  })
</スクリプト>
 

2. イベントパラメータを渡す

イベント処理関数でネイティブDOMイベントを取得する場合は、 htmlコードで呼び出すときに$eventパラメータを渡すことができます。

サンプルコードは次のとおりです。

<button v-on:click="subtract(10,$event)">10 を引く</button>
...
<スクリプト>
...
メソッド: {
    減算: 関数(値,イベント){
        this.count -= 値;
        console.log(イベント);
    }
}
...
</スクリプト>
 

3. イベント修飾子

イベント ハンドラーでevent.preventDefault()またはevent.stopPropagation()を呼び出すことは、非常に一般的な要件です。メソッド内でこれを簡単に実行できますが、 DOMイベントの詳細を処理するのではなく、メソッドに純粋なデータ ロジックを持たせる方が適切です。

この問題を解決するために、 Vue.js v-onのイベント修飾子を提供します。前述したように、修飾子はコマンドサフィックスの先頭のドットで示されます。

  • .stop: event.stopPropagationは、イベントのバブリングを停止します。
  • .prevent: event.preventDefault 、デフォルトの動作を防止します
  • .capture: イベントキャプチャ。
  • .self: 現在クリックされている要素自体を表します。
  • .once: このイベントは 1 回だけ実行されます。
  • .passive: ページのスクロール時にデフォルトの動作を妨げないようにブラウザに指示し、スクロールをスムーズにします。

ケース1: クリックイベントがさらに伝播するのを防ぐ

<div id="アプリ">
  <div @click="divClick">
    1111
    <button @click.stop="btnClick">ボタン</button>
  </div>
</div>
<スクリプト>
  アプリを新しいVue({
    el: "#app",
    データ: {
      カウント: 0
    },
    メソッド: {
      divクリック(){
        console.log("divClick")
      },
      btnClick(){
        console.log("btnClick")
      }
    }
  });
</スクリプト>

ケース2: 送信イベントでページがリロードされなくなった

<div id="アプリ">
  <フォームアクション="">
    <ラベル>
      <入力タイプ="テキスト">
    </ラベル>
    <ラベル>
      <input type="submit" value="送信">
    </ラベル>
  </フォーム>
</div>
<スクリプト>
  constアプリ = 新しいVue({
    el: "#app",
    データ: {
    }
  })
</スクリプト>

上記は、データ送信の最も標準的なコードです。送信後、自動的にBaiduにジャンプします。ただし、現在、要件があります。データ入力後、自動的にBaiduにジャンプするのではなく、まず独自の方法でデータを処理し、処理後に指定されたページにジャンプすることを希望します。

コードは次のとおりです。

<div id="アプリ">
  <フォームアクション="https://www.baidu.com">
    <ラベル>
      <入力タイプ="テキスト">
    </ラベル>
    <ラベル>
      <input type="submit" value="送信" @click.prevent="testClick">
    </ラベル>
  </フォーム>
</div>
<スクリプト>
  constアプリ = 新しいVue({
    el: "#app",
    メソッド: {
      テストクリック(){
      }
    }
  })
</スクリプト>

ここでは、クリック イベントをsubmitにバインドし、 .preventを使用してデフォルトの動作を防止します。

Vue v-on ディレクティブの使用に関するこの記事はこれで終わりです。Vue v-on ディレクティブに関するより関連性の高いコンテンツについては、123WORDPRESS.COM の過去の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • Vue ディレクティブ v-html はフィルター関数の例を使用します
  • Vue v-text ディレクティブの簡単な使用例
  • Vue.js 命令 v-for の使用と添字インデックスの取得
  • Vue.js における v-on イベント命令の使用に関する簡単な説明
  • Vue.js の v-cloak ディレクティブと詳細な使用方法
  • Vue.js の v-for の使い方とインデックスの取得方法
  • vue.js でよく使われる v 命令の解析

<<:  CSSカスタムプロパティの予備的な理解

>>:  MySQL 8.0の新機能、隠しフィールドの詳細な説明

推薦する

MySQLの場合の使用例分析

まず、データベース テーブルを作成します。 テーブル `t_demo` を作成します ( `id` ...

CSSのclip-pathプロパティを使用して不規則なグラフィックを表示する

clip-path CSS プロパティはクリッピングを使用して要素の表示可能領域を作成します。領域内...

HTML で #include ファイルを使用する例

a.htmとb.htmの2つのファイルがあります。同じディレクトリ内のa.htmの内容は次のとおりで...

Linux で開いているファイルが多すぎる問題を解決する方法

原因は、プロセスが特定の時点でシステム制限を超える数のファイルと通信リンクを開くことです。 システム...

JSはショッピングカート効果の単純な加算と減算を実装します

この記事の例では、ショッピングカートの簡単な追加と削除を実現するためのJSの具体的なコードを参考まで...

JavaScript の手ぶれ補正とスロットリングの詳細な説明

目次デバウンススロットル要約するデバウンス定義: スクロール イベントなど、短時間に連続してトリガー...

フォーム入力ボックスに関するWebデザインのヒント

1. キャンセル ボタンが押されたときの破線ボックス<br /> 入力に属性値 hide...

2つのシンプルなメニューナビゲーションバーの例

メニューバーの例 1: コードをコピーコードは次のとおりです。 <!DOCTYPE html ...

MYSQL メタデータ ロック (MDL ロック) MDL ロックの問題分析

1. はじめにMYSQL の MDL ロックは常に頭痛の種でした。ロックについて話すとき、通常は I...

JavaScriptにおけるこのポインティング問題の詳細な説明

序文信じてください。この記事の 7️⃣ ステップを覚えておけば、JS の this リファレンスを完...

Linux プラットフォームでの Zabbix エージェントのインストールと設定方法

ここでは、Linux プラットフォームでの Zabbix エージェントのインストールと構成について簡...

CentOS7 ファイアウォールとポート関連コマンドの紹介

目次1. ファイアウォールの現在の状態を確認する2. ファイアウォールサービスを開始する3. ファイ...

ネイティブ js カプセル化シームレスカルーセル機能

ネイティブjsカプセル化シームレスカルーセルプラグイン、参考までに、具体的な内容は次のとおりです。例...

重複したMySQLテーブルをマージして削除する簡単な方法

シナリオ:クロールされたデータは、別のメインテーブルと同じ構造を持つデータテーブルを生成するため、マ...

MySQL マルチテーブルクエリ例の詳しい解説 [リンククエリ、サブクエリなど]

この記事では、例を挙げて MySQL のマルチテーブル クエリについて説明します。ご参考までに、詳細...