Appearance
useEventListener 事件绑定(vue3)
- 方便地进行事件绑定,在组件 mounted 和 activated 时绑定事件,
- unmounted 和 deactivated 时解绑事件。
基础使用
ts
import { ref } from 'vue'
import { useEventListener } from '@mid-vue/shared'
export default {
setup() {
// 在 window 上绑定 resize 事件
// 未指定监听对象时,默认会监听 window 的事件
useEventListener('resize', () => {
console.log('window resize')
})
// 在 body 元素上绑定 click 事件
useEventListener(
'click',
() => {
console.log('click body')
},
{ target: document.body }
)
},
}支持 vue3 的 Ref
ts
import { ref } from 'vue'
let divRef = ref<HTMLElement>()
useEventListener(
'scroll',
() => {
console.log('window resize')
},
{
target: divRef,
}
)取消事件监听
useEventListener 会返回一个 cleanup 函数,调用该函数可以取消事件监听。
ts
import { ref } from 'vue'
import { useEventListener } from '@vant/use'
export default {
setup() {
const cleanup = useEventListener('resize', () => {
console.log('window resize')
})
cleanup()
},
}Options
| 名字 | 描述 | 类型 | Default |
|---|---|---|---|
| target | 绑定事件的元素 | Window , Document , HTMLElement , Ref | window |
| capture | 是否在事件捕获阶段触发 | boolean | false |
| passive | 设置为 true 时,表示 listener 永远不会调用 preventDefault | boolean | false |
