uni app beforeDestroy 详细案例
时间: 2023-08-06 16:04:00 浏览: 146
当页面销毁前需要执行一些清理操作时,你可以使用`beforeDestroy`生命周期钩子函数。下面是一个详细的uni-app示例,演示如何在页面销毁前执行清理操作:
```javascript
<template>
<view>
<!-- 页面内容 -->
</view>
</template>
<script>
export default {
beforeDestroy() {
// 在页面销毁前执行清理操作
this.unbindEventListeners();
this.clearTimers();
},
methods: {
unbindEventListeners() {
// 解绑事件监听器
document.removeEventListener('click', this.handleClick);
window.removeEventListener('resize', this.handleResize);
},
clearTimers() {
// 清除定时器
clearInterval(this.timerId);
},
handleClick() {
// 处理点击事件
console.log('点击事件处理');
},
handleResize() {
// 处理窗口大小改变事件
console.log('窗口大小改变事件处理');
}
},
mounted() {
// 在页面挂载完成后绑定事件监听器
document.addEventListener('click', this.handleClick);
window.addEventListener('resize', this.handleResize);
// 启动定时器
this.timerId = setInterval(() => {
console.log('定时器执行');
}, 1000);
}
}
</script>
```
在上面的示例中,我们在`beforeDestroy`生命周期钩子函数中定义了两个方法:`unbindEventListeners`和`clearTimers`。在这两个方法中,我们分别解绑了事件监听器和清除了定时器。然后,在`mounted`生命周期钩子函数中,我们绑定了事件监听器和启动了一个定时器。
当页面被销毁时,`beforeDestroy`钩子函数会自动调用,从而执行清理操作。在这个例子中,我们解绑了事件监听器和清除了定时器。
希望这个例子对你有帮助!如果还有其他问题,请随时提问。
阅读全文