【学习任务】写一个 hooks 函数,来监听键盘的按键
7.4k
等77人参与

题目:

根据所学知识,写一个 hooks 函数,来监听键盘上的当前某个按键是否被按下?

 const hPress = useKeyPress('h')
  • 1
  • 1
代码块
复制 预览
复制成功!
代码块
复制 预览
复制成功!
<div v-if="hPress">h键被按下啦</div>
  • 1
  • 1
代码块
复制 预览
复制成功!
代码块
复制 预览
复制成功!

任务要求:

1 可以在事件对象 event.key 上面拿到对应的按键名称
2 可以尝试在 keydown 和 keyup 两个 DOM 事件触发对应的修改
参考答案:

import { ref, onMounted, onUnmounted } from 'vue'
const useKeyPress = (targetKeyCode: string) => {
  const keyPressed = ref(false)
  
  const keyDownHandler = (e: KeyboardEvent) => {
    if(e.key === targetKeyCode) {
      keyPressed.value = true
    }
  }
  const keyUpHandler = (e: KeyboardEvent) => {
    if(e.key === targetKeyCode) {
      keyPressed.value = false
    }
  }
  onMounted(() => {
    document.addEventListener('keydown', keyDownHandler)
    document.addEventListener('keyup', keyUpHandler)    
  })
  onUnmounted(() => {
    document.removeEventListener('keydown', keyDownHandler)
    document.removeEventListener('keyup', keyUpHandler)         
  })
  return keyPressed
}
export default useKeyPress


  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
代码块
复制 预览
复制成功!
代码块
复制 预览
复制成功!
我的作业
去发布

登录后即可发布作业,立即

全部作业
0
评论
提交于  2024-06-30 17:16:49

登录后即可查看更多作业,立即

微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号