Vue のキーボードイベント監視の概要

Vue のキーボードイベント監視の概要

キー修飾子

キーボード イベントをリッスンする場合、詳細なキーを確認する必要があることがよくあります。 Vue では、キーボード イベントをリッスンするときに v-on にキー修飾子を追加できます。

<!-- `key` が `Enter` の場合にのみ `vm.submit()` を呼び出します -->
<入力v-on:keyup.enter="送信">

KeyboardEvent.key によって公開される有効なキー名をケバブケースに変換するだけで、修飾子として使用できます。

<input v-on:keyup.page-down="onPageDown">

必要に応じて古いブラウザをサポートするために、Vue は最も一般的なキーコードのエイリアスを提供します。

  • -入力
  • - タブ
  • - 削除(「Delete」キーと「Backspace」キーをキャプチャします)
  • -ESC
  • - 空間
  • - 上
  • - 下
  • -左
  • - 右

グローバル config.keyCodes オブジェクトを介してキー修飾子のエイリアスをカスタマイズすることもできます。

// `v-on:keyup.f1` を使うことができます
Vue.config.keyCodes.f1 = 112

システム修飾キー

次の修飾子を使用すると、対応するキーが押されたときにのみマウスまたはキーボード イベントをトリガーするリスナーを実装できます。

  • - .ctrl
  • - .alt
  • - 。シフト
  • - .メタ

何かをする
キーエイリアスとは異なり、修飾キーを keyup イベントで使用する場合、イベントがトリガーされたときに通常のキーを押す必要があります。つまり、keyup.ctrl をトリガーしたい場合は、ctrl キーを押しながら他のキーを放す必要があります。単に ctrl キーを放すだけではイベントはトリガーされません。

<!-- トリガーするには Alt + C を離します -->
<input @keyup.alt.67="クリア">
 
<!-- Alt キーを押しながら任意のキーを離すことでトリガーされます-->
<input @keyup.alt="other"><!-- Ctrl + Enter キーを押すとトリガーされます--><input @keydown.ctrl.13="submit">

elementUI 入力の場合、elementUI が入力をカプセル化し、ネイティブ イベントが機能しないため、最後に .native を追加する必要があります。

<input v-model="form.name" placeholder="ニックネーム" @keyup.enter="送信">

<el-input v-model="form.name" placeholder="ニックネーム" @keyup.enter.native="送信"></el-input>

.exact 修飾子

.exact 修飾子を使用すると、システム修飾子の正確な組み合わせによってどのイベントがトリガーされるかを制御できます。

<!-- Alt キーまたは Shift キーを同時に押した場合でも、この処理が実行されます -->
<button v-on:click.ctrl="onClick">A</button>

<!-- Ctrl キーが押されたときにのみトリガーされます-->
<button v-on:click.ctrl.exact="onCtrlClick">A</button>

<!-- システム修飾子が押されていない場合にのみトリガーされます-->
<button v-on:click.exact="onClick">A</button>

マウスボタン修飾子

  • 。左
  • 。右
  • 。真ん中

これらの修飾子は、ハンドラー関数が特定のマウス ボタンにのみ応答するように制限します。

システムキーの組み合わせ

グローバルキー操作方法を監視したい場合、当然ながら、それをページ要素にバインドすることはできません。

マウントして監視できます:

マウント() {
  document.onkeydown = 関数 (イベント) {
    キーを window.event.keyCode とします。
    if (キー === 65 && event.ctrlKey) { 
      // ctrl+A キーの組み合わせをリッスンします。window.event.preventDefault(); // ブラウザのデフォルトのショートカット キーをオフにします。console.log('crtl+ a キーの組み合わせ')    
    } そうでない場合、key === 83 && event.ctrlKey) {       
      window.event.preventDefault(); //ブラウザのショートカットキーを閉じる console.log('Save');
    }
  }
}

上記の例から、shift、control、Alt は JS では「window.event.shiftKey」、「window.event.ctrlKey」、および「window.event.altKey」に置き換えることもできることがわかります。

付録 - キーボードボタンのキーコード表

以上がVueのキーボードイベント監視の詳細な概要です。Vueのキーボードイベント監視の詳細については、123WORDPRESS.COMの他の関連記事に注目してください。

以下もご興味があるかもしれません:
  • Vue プロジェクトのソフト キーボード入力により検索イベントがトリガーされる
  • Vue キーボード入力イベントの例の説明
  • Vue でキーボード イベントをリッスンする簡単な方法 [推奨]
  • Vue キーボードイベントの使用法の概要
  • Vueのキーボードイベントの詳細な説明

<<:  DockerプライベートイメージライブラリとAlibaba CloudオブジェクトストレージOSSの簡単な分析

>>:  MySQL 5.7.17 のインストールと使用方法のグラフィックチュートリアル

推薦する

MySQL MHA 操作ステータス監視の概要

目次1. プロジェクトの説明1.1 背景1.2 実装設計1.2.1 従来の方法1.2.2 最適化され...

Node.js のフロントエンドとバックエンドのインタラクションによるユーザーログインの実装の実践

目次1. プロジェクト要件次にコーディングを始める1. フロントエンドページを作成する(CSSスタイ...

Linux サーバーのグラフィック カードのクラッシュの解決策

ログインインターフェースの解像度が特に大きい場合、グラフィカルインターフェース全体が特に大きくなり、...

uniapp プロジェクトで MQTT を使用する方法

目次1. uniappプラグインマーケットのリファレンスプラグイン2. 具体的な導入プロセス1. m...

JavaScript の new 演算子を自分で実装する方法

目次コンストラクタ新しいオペレーター自分で新しいものを実装するコンストラクタnew を導入する前に、...

Windows 10 での MySQL 8.0.11 圧縮バージョンのインストール チュートリアル

この記事では、MySQL 8.0.11圧縮版のインストールチュートリアルを参考までに紹介します。具体...

Linux でのログ サーバーの設定に関するグラフィック チュートリアル

序文この記事では、Linux 構成ログ サーバーに関する関連コンテンツを主に紹介し、参考と学習のため...

ウェブアニメーションのフレームレートFPSを計算する方法

目次スムーズなアニメーションの基準方法1: Chromeデベロッパーツールを使用する方法 2: フレ...

MySQLにインデックスを追加しても効果がないいくつかの状況について簡単に説明します。

インデックスを追加すると、クエリの効率が向上します。インデックスを追加するということは、ドキュメント...

Linux 上での MySQL データベースのインストールと Java プロジェクトの構成に関する詳細なグラフィック説明

1. MySQLデータベースをインストールする① ダウンロードして解凍し、/opt/softディレク...

Vueのトランジションとアニメーションの深い理解

1. DOM要素を挿入、更新、または削除するときに、適切な場合は要素にスタイルクラス名を追加します。...

Centos8.3、dockerデプロイメントspringbootプロジェクトの実際のケース分析

導入現在、k8s は非常に人気があり、それについて学ぶために本を購入しました。しかし、k8s では数...

docker compose デプロイメントにおけるマスタースレーブレプリケーションの実装

目次構成解析サービス構築ディレクトリ構造ファイルを作成インスタンス構成サービスを開始するテストRed...

Ubuntu16.04にCUDA9.0をインストールするための詳細なチュートリアル

序文:この記事は、CUDA 9.0 をインストールした経験に基づいています。CUDA 9.0 は現在...