Vueのキーボードイベントの詳細な説明

Vueのキーボードイベントの詳細な説明

js では、キーのコードを取得する場合、通常は (keydown/keyup) を介してイベントをバインドし、デフォルトのパラメータ イベントの keyCode 属性を介してコードを取得する必要があります。固定キーを押してイベントをトリガーしたい場合、イベント内で一定の判断を行う必要があり、非常に面倒になります。

 var 入力 = document.querySelector('入力')
    input.onkeyup = 関数 (e) {
        (e.keyCode == 13)の場合
            console.log('私はEnterキーです')
    }

Vue では、よく使用されるボタンのいくつかにエイリアスが提供されており、イベント内で手動で判断することなく、イベント後に対応するエイリアスを追加するだけで済みます。

共通キーエイリアス

Vue には、よく使用されるボタンに次のようなエイリアスがバインドされています。

  • 上矢印: 上
  • 下矢印: 下
  • 左矢印: 左
  • 右矢印: 右
  • スペース: スペース
  • 改行: タブ
  • 終了: esc
  • 入力: 入力
  • 削除/バックスペース:削除

エイリアスを使用して、キーボード イベント (keydown、keyup) を制限できます。バインドされたイベントは、押されたキーがエイリアスと一致する場合にのみ実行されます。

 <input v-on:keyup.enter="ヒントを表示" type="text">
showtipメソッドはEnterキーが押されたときにのみ実行されます

さらに、タブ キーは keydown での使用にのみ適しています。ブラウザーでは、タブ自体がフォーカスの切り替えイベントにバインドされているため、タブ キーを押して放すと、デフォルトのイベントがトリガーされ、keyup にバインドされたイベントは無視されます。 keydown を使用するとこの状況を回避でき、タブが押された瞬間にバインドされたイベントが実行されます。

エイリアスが指定されていないキー

さらに、vue にはボタンのエイリアスはありませんが、vue ではそれを使用する方法も提供されています。 Vue では、エイリアスを提供しないボタンについては、ボタンの元のキー値を使用してバインドできることが規定されています。いわゆるキー値とは、event.key で取得した値のことです。のように

var 入力 = document.querySelector('入力')
    input.onkeyup = 関数 (e) {
       コンソールログ(e.key)
       }

上記のコードは、任意のキーを押すと、対応するキーの値をコンソールに出力します。大文字と小文字の切り替えキー、Qキー、Wキーを押すと、次の値が得られます。

キーの値をキーの別名として使用できます。キーの値が単一の文字または単語の場合は、キーの値を直接使用できることに注意してください。ただし、大文字と小文字の切り替えキーのように複数の単語で構成されている場合は、2つの単語の組み合わせになります。このとき、キーの値を変更し、ハイフンの命名規則を使用してCapsLock-->caps-lockに変更する必要があります。

 <input v-on:keyup.Q="ヒントを表示" type="text">
//showtip メソッドは q キーが押されたときにのみ実行されます <input v-on:keyup.caps-lock="showtips" type="text">
// showtips メソッドは CapsLock キーが押されたときにのみ実行されます

システム修飾キー

いわゆるシステム修飾キーは、Ctrl、Alt、Shift などです。これらのキーの使用は少し複雑で、主に次の2つの状況に分けられます。

1. トリガー イベントがキーアップの場合、修飾キーを押しながら他のキーを押してから、他のキーを放してイベントをトリガーする必要があります。

 <input v-on:keyup.Alt="ヒントを表示" type="text">
// Alt キーを押してから任意のキーを押して、任意のキーを離すと showtips メソッドが実行されます // 上記の手順は面倒すぎるので、次のように記述します <input v-on:keyup.Alt.y="showtips" type="text">
// Alt + y を押すと、Alt、y、y の順に押さなくてもイベントがトリガーされます。

トリガー イベントが keydown の場合、修飾キーを直接押します。

 <input v-on:keydown.Alt="ヒントを表示" type="text">
// showtips メソッドは、Alt キーが押されたときにのみ実行されます

カスタムキーエイリアス

Vueはキーエイリアスをカスタマイズする方法を提供しており、これは(Vue.config.keyCodes.custom key name = key code)で定義できます。

 <input v-on:keydown.en="ヒントを表示" type="text">
// showtips メソッドは Enter キーが押されたときにのみ実行されます Vue.config.keyCodes.en=13
//13はEnterキーのキーコードなので、そのエイリアスをenとして定義します。

要約する

この記事はこれで終わりです。皆さんのお役に立てれば幸いです。また、123WORDPRESS.COM のその他のコンテンツにも注目していただければ幸いです。

以下もご興味があるかもしれません:
  • Vue は入力をトリガーしてファイルクリックイベント操作を選択します
  • Vue 学習ノート: ネイティブ イベントをコンポーネントにバインドする例
  • Vueイベント処理操作例の詳細な説明
  • VUE 入門 イベント処理の学習
  • Vue イベントの基本的な操作をご存知ですか?

<<:  Linux システムの .bash_profile ファイルの詳細な説明

>>:  HTMLコードに基づく画像断片化読み込み機能の実装

推薦する

超詳細なMySQL使用仕様の共有

最近、データベース関連の操作が多くなり、会社の既存の仕様はあまり包括的ではありません。インターネット...

vue backtop コンポーネントを実装するための完全なコード

効果: コード: <テンプレート> <div class="back-t...

Mybatis での動的 SQL ステートメント分析

この記事は主にMybatisでの動的SQL文の解析について紹介します。この記事のサンプルコードは非常...

VMware Workstation のインストール Linux (Ubuntu) システム

システムをコンピューターにインストールする方法がわからない場合は、Linux を学習したい場合は、仮...

CSS3 背景コントロールプロパティと色遷移を使用してグラデーション効果を実現します。

CSS3 背景画像関連互換性: IE9+背景クリップ 背景画像描画領域background-cli...

pt-heartbeat を使用して MySQL レプリケーションの遅延を監視する方法の詳細な説明

pt-ハートビートデータベースがマスターとスレーブ間で複製される場合、複製ステータスとデータ遅延は非...

js は丸で囲まれた数字のリストのサンプルコードを動的に追加します

1. まず本文にulタグを追加します <!-- 順序なしリスト --> <ul i...

MySQLデータベースが大きすぎる場合にバックアップと復元を行う方法

コマンド: mysqlhotcopyこのコマンドは、ファイルをコピーする前にテーブルをロックし、不完...

Dockerを使用してDjango+MySQL8開発環境をデプロイする方法の詳細な説明

しばらく前にシステムを再インストールしましたが、バックアップを取っていなかったので、コンピューター上...

MySQL 5.6 zipパッケージのインストールチュートリアルの詳細

これまでは、拡張子が .msi のファイル、つまり、完全なインストールが使用されていました。しかし、...

MySQL でトリガーを無効化および有効化するチュートリアル [推奨]

MYSQL を使用する場合、トリガーがよく使用されますが、不適切な使用によって問題が発生する場合が...

Docker ベースの nginx ファイル サーバーを構築する方法と手順

1. このマシンに新しい設定ファイルdocker_nginx.confを作成します。 サーバー{ 7...

CSS カウンターを使用して数字の順序付きリストを美しく表示する方法

Web デザインでは、Web サイトに表示されるデータの構造とコンテンツをユーザーが明確に理解できる...

MySQL スロークエリログの有効化と設定

導入MySQL スロー クエリ ログは、問題のある SQL ステートメントのトラブルシューティングや...

Vue プロジェクトで addRoutes を使用する際の問題の解決策

目次序文1. 404 ページ1. 原因2. 解決策2.白い画面を更新する1. 原因2. 解決策3. ...