目次
v-hotkeyとは

v-hotkeyは、ホットキーをバインドするVue.js製のコンポーネントライブラリです。
[enter] や [ctra+a] などのキーボードを押した時にイベントを起動させることができます。
デフォルトのキーコードマップは、米国の標準キーボードに基づいています。
異なるレイアウトのキーボードを使用する開発者には、独自のキーコードエイリアスを提供します。
エイリアス名は単一の文字でなければなりません。
インストール
以下のnpm、CDNを使ってインストールします。
npm
npm i --save v-hotkey
CDN
<script src="https://cdn.jsdelivr.net/npm/[email protected]/index.min.js"></script>
gitリポジトリは以下から取得できます。
https://github.com/Dafrok/v-hotkey
導入手順
ホットキーをバインドします。
1. ライブラリの取り込み
(1)webpack等の場合 ※モジュール版は未検証です。
import VueHotkey from 'v-hotkey'
(2)WEBページの場合
const VueHotkey = window.VueHotkey;
2.メソッドを設定
Vue.use(VueHotkey);
Vue.component('hotkey', {
template: '#hotkey',
data() {
return {
show: true,
text: '[enter]を押すと消えて、離すと表示されます。[ctrl+a]を押すとこのテキストが倍になります。',
}
},
methods: {
doToggle:function () {
this.show = !this.show
},
doShow:function () {
this.show = true
},
doHide:function () {
this.show = false
},
addList: function() {
this.text = this.text + this.text;
}
},
computed: {
keymap: function() {
return {
'ctrl+esc': this.doToggle,
'enter': {
keydown: this.doHide,
keyup: this.doShow
},
'ctrl+a': this.addList
}
}
}
});
let app = new Vue({
el: '#app',
});
3. テンプレートを準備
管理人のやり方が悪いのかHTMLに直記載のだと動作しませんでした。
コンポーネントを利用する場合は、大丈夫みたいです。
<div id="app">
<script type="text/x-template" id="hotkey">
<span v-hotkey.prevent.stop="keymap"
v-show="show"
v-text="text"></span>
</script>
<hotkey></hotkey>
</div>
サンプル
※iframeをクリックしないと動作しません。
さいごに
ホットキーをバインドするVue.js製のコンポーネントライブラリでした。
ブラウザやOSによってバインドできないキーもありますが([ctrl+esc]など)、色んな可能性を感じるライブラリです。
ぜひ試してみてください。
今日はこの辺でー