原文地址html
背景
在一些搜索框中,咱們每每須要監聽鍵盤的按下(onkeydown
)或擡起(onkeyup
)事件以進行一些操做。在原生js或者jQuery中,咱們須要判斷e.keyCode
的值來獲取用戶所按的鍵。這樣就存在一個問題:咱們必須知道某個按鍵的keyCode
值才能完成匹配,使用起來十分不便。vue
keyCode | 實際鍵值 |
---|---|
48到57 | 0到9 |
65到90 | a到z(A到Z) |
112到135 | F1到F24 |
8 | BackSpace(退格) |
9 | Tab |
13 | Enter(回車) |
20 | Caps_Lock(大寫鎖定) |
32 | Space(空格鍵) |
37 | Left(左箭頭) |
38 | Up(上箭頭) |
39 | Right(右箭頭) |
40 | Down(下箭頭) |
方案
在Vue中,已經爲經常使用的按鍵設置了別名,這樣咱們就無需再去匹配keyCode
,直接使用別名就能監聽按鍵的事件。ruby
<input @keyup.enter="function">
別名 | 實際鍵值 |
---|---|
.delete | delete(刪除)/BackSpace(退格) |
.tab | Tab |
.enter | Enter(回車) |
.esc | Esc(退出) |
.space | Space(空格鍵) |
.left | Left(左箭頭) |
.up | Up(上箭頭) |
.right | Right(右箭頭) |
.down | Down(下箭頭) |
.ctrl | Ctrl |
.alt | Alt |
.shift | Shift |
.meta | (window系統下是window鍵,mac下是command鍵) |
另外,Vue中還支持組合寫法:markdown
組合寫法 | 按鍵組合 |
---|---|
@keyup.alt.67=」function」 | Alt + C |
@click.ctrl=」function」 | Ctrl + Click |
注意
可是,若是是在本身封裝的組件或者是使用一些第三方的UI庫時,會發現並不起效果,這時就須要用到.native
修飾符了,如:ui
<el-input v-model="inputName" placeholder="搜索你的文件" @keyup.enter.native="searchFile(params)" > </el-input>
若是遇到.native
修飾符也無效的狀況,可能就須要用到$listeners
了,具體用法請參考Vue官方文檔:將原生事件綁定到組件。spa