Category | Sensors |
---|---|
Export Size | 651 B |
Last Changed | 2 weeks ago |
Listen for keyboard key being stroked.
import { onKeyStroke } from '@vueuse/core' onKeyStroke('ArrowDown', (e) => { e.preventDefault() })
See this table for all key codes.
import { onKeyStroke } from '@vueuse/core' onKeyStroke(['s', 'S', 'ArrowDown'], (e) => { e.preventDefault() }) // listen to all keys by [true / skip the keyDefine] onKeyStroke(true, (e) => { e.preventDefault() }) onKeyStroke((e) => { e.preventDefault() })
onKeyStroke('A', (e) => { console.log('Key A pressed on document') }, { target: document })
The callback will trigger only once when pressing A
and hold down.
import { onKeyStroke } from '@vueuse/core' // use `autoRepeat` option onKeyStroke('A', (e) => { console.log('Key A pressed') }, { dedupe: false })
Reference: KeyboardEvent.repeat
This function also provides a directive version via the
@vueuse/components
package. Learn more about the usage.
<script setup lang="ts"> import { vOnKeyStroke } from '@vueuse/components' function onUpdate(e: KeyboardEvent) { // impl... } </script> <template> <input v-on-key-stroke:c,v="onUpdate" type="text"> <!-- with options --> <input v-on-key-stroke:c,v="[onUpdate, { eventName: 'keyup' }]" type="text"> </template>
onKeyStroke('Shift', (e) => { console.log('Shift key up') }, { eventName: 'keyup' })
Or
onKeyUp('Shift', () => console.log('Shift key up'))
onKeyDown
- alias for onKeyStroke(key, handler, {eventName: 'keydown'})
onKeyPressed
- alias for onKeyStroke(key, handler, {eventName: 'keypress'})
onKeyUp
- alias for onKeyStroke(key, handler, {eventName: 'keyup'})
export type KeyPredicate = (event: KeyboardEvent) => boolean export type KeyFilter = true | string | string[] | KeyPredicate export type KeyStrokeEventName = "keydown" | "keypress" | "keyup" export interface OnKeyStrokeOptions { eventName?: KeyStrokeEventName target?: MaybeRefOrGetter<EventTarget | null | undefined> passive?: boolean /** * Set to `true` to ignore repeated events when the key is being held down. * * @default false */ dedupe?: MaybeRefOrGetter<boolean> } export declare function onKeyStroke( key: KeyFilter, handler: (event: KeyboardEvent) => void, options?: OnKeyStrokeOptions ): () => void export declare function onKeyStroke( handler: (event: KeyboardEvent) => void, options?: OnKeyStrokeOptions ): () => void /** * Listen for keyboard keys being stroked. * * @see https://vueuse.org/onKeyStroke */ export declare function onKeyStroke( key: KeyFilter, handler: (event: KeyboardEvent) => void, options?: OnKeyStrokeOptions ): () => void export declare function onKeyStroke( handler: (event: KeyboardEvent) => void, options?: OnKeyStrokeOptions ): () => void /** * Listen to the keydown event of the given key. * * @see https://vueuse.org/onKeyStroke * @param key * @param handler * @param options */ export declare function onKeyDown( key: KeyFilter, handler: (event: KeyboardEvent) => void, options?: Omit<OnKeyStrokeOptions, "eventName"> ): () => void /** * Listen to the keypress event of the given key. * * @see https://vueuse.org/onKeyStroke * @param key * @param handler * @param options */ export declare function onKeyPressed( key: KeyFilter, handler: (event: KeyboardEvent) => void, options?: Omit<OnKeyStrokeOptions, "eventName"> ): () => void /** * Listen to the keyup event of the given key. * * @see https://vueuse.org/onKeyStroke * @param key * @param handler * @param options */ export declare function onKeyUp( key: KeyFilter, handler: (event: KeyboardEvent) => void, options?: Omit<OnKeyStrokeOptions, "eventName"> ): () => void
© 2019-present Anthony Fu
Licensed under the MIT License.
https://vueuse.org/core/onKeyStroke/