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の新機能、隠しフィールドの詳細な説明

推薦する

Net Core実装プロセス分析のDoc​​kerインストールと展開

1. Dockerのインストールと設定 #CentOS をインストールし、Docker パッケージを...

Reactのref属性を深く理解する方法

目次概要1. Refsオブジェクトの作成1.1 React.createRef() 1.2React...

Docker に nginx をインストールし、https 経由でアクセスを構成する方法

1. 最新のnginx dockerイメージをダウンロードする $ docker pull ngin...

Win7 での Mysql 5.7.17 winx64 インストール チュートリアル

ソフトウェア バージョンとプラットフォーム: MySQL-5.7.17-winx64、win7 Ho...

IDEA は MySQL への接続時にエラーを報告します。サーバーが無効なタイムゾーンを返します。タブに移動して serverTimezone プロパティを設定してください。

これからの道は常に困難で、棘だらけです。歯を食いしばって、乗り越えられると信じてください。さあ、さあ...

Centos7 のインストールと Mysql5.7 の設定

ステップ1: MySQL YUMソースを取得するMySQLの公式サイトにアクセスして、RPMパッケー...

さようなら Docker: 5 分で Containerd に移行する方法

Docker は非常に人気のあるコンテナ技術です。K8S によって廃止され、別のコンテナ技術である ...

JavaScript ドラッグタイム ドラッグケースの詳細な説明

目次DragEvent インターフェースデータ転送インターフェースの概要DataTransfer の...

JavaScriptオブジェクトをマージするさまざまな方法の詳細な説明

目次オブジェクトをマージするさまざまな方法(インターフェースを通じてデータを取得し、それをローカル ...

InnoDB がトランザクション分離レベルを巧みに実装する方法

序文前回の記事「MySQL ロック メカニズムの詳細説明」では、InnoDB のロック メカニズムに...

MySQL 8.0.22.0 のダウンロード、インストール、設定方法のグラフィックチュートリアル

MySQL 8.0.22のダウンロード、インストール、設定方法、参考までに具体的な内容は次のとおりで...

SSH ポート転送とは何ですか?何の役に立つの?

目次序文1. ローカルポート転送2. リモートポート転送3. 動的ポート転送(SOCKS5) 4. ...

CSS3を使用してボタンホバーフラッシュダイナミック特殊効果コードを実装する

CSS3 の列シリーズ属性を使用してウォーターフォールレイアウトを作成する方法を紹介しました。興味の...

クラウド CentOS で Docker リモート サービス リンクを有効にするための実装手順

ここでは、dockerがインストールされたcentosサーバーを紹介し、リモートリンクサービスを開始...

JavaScript Reduceの詳しい説明

目次地図フィルターいくつかの毎インデックスを検索パイプ参考回答1. パラメータを受け入れる関数を返す...