1.0.2 • Published 3 years ago
use-hot-key-element v1.0.2
Tại sao?
- useKeyboardJs không giải quyết được vấn đề sử dụng phím tắt hoặc tổ hợp phím tắt với một html element cụ thể (ví dụ một textfield có id
#input-textfield). - Thao tác với phím tắt luôn tuyệt vời hơn click chuột.
Cài đặt:
npm i -S use-hot-key-element
hoặc
yarn add use-hot-key-elementSử dụng:
import React, {useEffect, useState} from 'react'
import useHotKey from 'use-hot-key-element'
function Form(){
const [name, setName] = useState('')
const [isNameInputEnterPressed] = useHotKey('enter', '#name-input')//khi nhấn phím enter trên element có id `name-input`
useEffect(()=>{
if(isNameInputEnterPressed) console.log(name) // log name khi enter trên `name-input`
},[isNameInputEnterPressed])
return (
<div>
<input id="name-input" value={name} onchange={(e)=>setName(e.target.value)}/>
</div>
)
}API:
- useHotKey
(keys: String|Array, domQuerySelectorOrFunc: String|Function) - useCtrlWithKey
(key: String, domQuerySelectorOrFunc: String|Function) - useShiftWithKey
(key: String, domQuerySelectorOrFunc: String|Function) - useCtrlShiftWithKey
(key: String, domQuerySelectorOrFunc: String|Function) - useCtrlEnter
(domQuerySelectorOrFunc: String|Function) - useBackSpace
(domQuerySelectorOrFunc: String|Function)
Trong đó:
keylà 1 tổ hợp phím hoặc 1 phím, ví dụ:'z','ctrl+c','shift+enter','shift+meta+v'(cho mac). Các phím đặc biệt bao gồmctrl(Mac: phímcontrolhoặccommand),alt(Mac: phímoption),shift.keyslà một mảng củakeysử dụng trong trường hợp lắng nghe nhiềukeykhác nhau, hoặc 1keydomQuerySelectorOrFunclà selector của element, hoặc 1 function được thực hiện khi nhấnkey
License:
MIT