使用场景:可以利用
visibilitychange
事件来处理页面可见性变化,例如在页面不可见时暂停视频播放、更新页面数据等。
在Vue 3中,可以使用onBeforeMount
和onUnmounted
钩子函数来监听页面可见性变化,并执行相应的逻辑。
以下是在Vue 3中使用visibilitychange
的具体步骤:
- 在组件的
setup
方法中引入ref
和onBeforeMount
以及onUnmounted
钩子函数:
import { ref, onBeforeMount, onUnmounted } from 'vue';
- 创建一个
ref
来保存可见性状态:
const isVisible = ref(true);
- 创建一个函数来处理可见性变化的事件:
const handleVisibilityChange = () => {isVisible.value = !document.hidden;
};
- 在
onBeforeMount
钩子函数中,添加可见性变化事件的监听器:
onBeforeMount(() => {document.addEventListener('visibilitychange', handleVisibilityChange);
});
- 在
onUnmounted
钩子函数中,移除可见性变化事件的监听器:
onUnmounted(() => {document.removeEventListener('visibilitychange', handleVisibilityChange);
});
- 最后,在模板中使用可见性状态:
<template><div><p v-if="isVisible">页面当前可见</p><p v-else>页面当前不可见</p></div>
</template>
这样,当页面可见性发生变化时,isVisible
的值会更新,从而触发模板中的相应变化。