要在 Vue.js 抓取鍵盤事件,我們可以使用其 Key Modifiers 來抓到,然後利用像這樣的方式來抓

@keyboardEvent.key="event"

比如我有一個 input:

<input type="text" @keyup.down="doSomething">

就可以在離開「下」的鍵盤時觸發事件。

可以用的 modifier 有這些:

  • .enter
  • .tab
  • .delete (captures both "Delete" and "Backspace" keys)
  • .esc
  • .space
  • .up
  • .down
  • .left
  • .right
  • .ctrl
  • .alt
  • .shift

可是如果在 div 上就沒辦法直接觸發,這時候就要在上面加上 tabindex='0' 的屬性,才能夠抓到 keyboard 事件,像是:

<div 
        @keydown.up="toUp"
        @keydown.down="toDown" 
        @keydown.left="toLeft"
        @keydown.right="toRight" 
        tabindex="0">
...
        </div>

給有需要的參考。