VueUse useEventListener 事件监听,在mounted事件注册事件监听在unmounted注销监听。
import { useEventListener } from '@vueuse/core'
//监听整个网页
useEventListener(document, 'visibilitychange', (evt) => {
console.log(evt)
})
你也可以传入ref(Dom元素)作为事件目标,当你改变目标时,useEventListener将注销之前的事件并注册新的事件。
<script setup lang="ts">
import { useEventListener } from '@vueuse/core'
const element = ref<HTMLDivElement>()
useEventListener(element, 'keydown', (e) => {
console.log(e.key)
})
</script>
<template>
<div ref="element" >
把鼠标移动到这里试试看
</div>
</template>
例子
你也可以卸载已监听的事件。
import { useEventListener } from '@vueuse/core'
const cleanup = useEventListener(document, 'keydown', (e) => {
console.log(e.key)
})
//卸载监听
cleanup()
在SSR 模式下(服务端渲染),需要在onMounted里注册监听
onMounted(() => {
useEventListener(document, 'keydown', (e) => {
console.log(e.key)
})
})