写一个vue3滚动事件的hooks
时间: 2023-06-02 19:03:54 浏览: 120
好的,我可以回答这个问题。以下是一个使用Vue 3的Composition API编写的滚动事件Hooks的示例:
```javascript
import { ref, onMounted, onUnmounted } from 'vue';
export default function useScroll() {
const scrollY = ref(0);
const handleScroll = () => {
scrollY.value = window.scrollY;
};
onMounted(() => {
window.addEventListener('scroll', handleScroll);
});
onUnmounted(() => {
window.removeEventListener('scroll', handleScroll);
});
return { scrollY };
}
```
使用方法如下:
```vue
<template>
<div>
<p>{{ scrollY }}</p>
</div>
</template>
<script>
import useScroll from '@/hooks/useScroll';
export default {
setup() {
const { scrollY } = useScroll();
return {
scrollY,
};
},
};
</script>
```
该Hooks会在组件挂载时添加滚动事件监听器,在组件卸载时移除监听器。当用户滚动页面时,`scrollY` ref将会被更新。