前端监听键盘事件

文章讲述了在React中如何使用useEffect来监听keydown事件,并在组件卸载时正确清理。特别提到了Ctrl+F1事件的监听方法,通过判断event对象的ctrlKey和keyCode属性来实现。此外,还强调了事件处理函数的优化和其它键盘事件的类似处理方式。
摘要由CSDN通过智能技术生成

需求就如题所示

1.监听

在react中监听如下:

    useEffect(() => {
        window.addEventListener('keydown', getKeyDown);
        return () => {
            window.removeEventListener('keydown', getKeyDown); // 销毁
        };
    }, [])

keydown事件是键盘的相关事件,我们主动去监听一下,然后别忘了去销毁, 然后有个写法:

在useEffect中使用return返回了一个清除监听的函数,实践了一下return的执行时机,发现是在页面切走的时候,也就是说,当前的组件被销毁的时候执行,相当于卸载的钩子函数。

2.事件

const getKeyDown = useCallback((e: any) => {
        console.log(e);
        if (e.ctrlKey && e.keyCode === 112) {
            console.log('ctrKey + f1');
        }
    }, [])

我们把事件打印出来看一下,我们要监听的是Ctrl + F1事件,我们看下:

如上图所示:

有几个点说一下,我是按下了Ctrl + F1,然后看到了一个参数,keyCode这个参数对比下可以,就可以知道,这个是F1的code值,还有其他一些值,像ctrlKey、altKey等,他们就是你按F1的时候同时发生的键盘事件,这样我们就好处理了,直接判断ctrlKey为True且 keyCode === 112即可监听成功;

PS:其他键盘事件同理可操作;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值