返回顶部
首页 > 资讯 > 前端开发 > JavaScript >vue离开页面时如何销毁定时器
  • 670
分享到

vue离开页面时如何销毁定时器

2024-04-02 19:04:59 670人浏览 八月长安
摘要

目录Vue离开页面销毁定时器组件里定时器销毁问题解决方法1解决方案2vue离开页面销毁定时器 beforeDestroy() { if(this.timer) {     clear

vue离开页面销毁定时器

beforeDestroy() {
if(this.timer) {
    clearInterval(this.timer); //关闭
   }  //利用vue的生命周期函数

vue 是单页面应用,路由切换后,定时器并不会自动关闭,需要手动清除,当页面被销毁时,清除定时器即可。

组件里定时器销毁问题

我在a页面写一个定时,让他每秒钟打印一个1,然后跳转到b页面,此时可以看到,定时器依然在执行。这样是非常消耗性能的。

如下图所示:

解决方法1

首先我在data函数里面进行定义定时器名称:

 data() {                   
   return {                                          
    timer: null  // 定时器名称                 
   }         
 },

然后这样使用定时器:

this.timer = (() => {     // 某些操作 }, 1000)

最后在beforeDestroy()生命周期内清除定时器:

beforeDestroy() {         
  clearInterval(this.timer);                 
  this.timer = null;
}

方案1有两点不好的地方,引用尤大的话来说就是:

  • 它需要在这个组件实例中保存这个 timer,如果可以的话最好只有生命周期钩子可以访问到它。这并不算严重的问题,但是它可以被视为杂物。
  • 我们的建立代码独立于我们的清理代码,这使得我们比较难于程序化的清理我们建立的所有东西。

解决方案2

该方法是通过$once这个事件侦听器器在定义完定时器之后的位置来清除定时器。

以下是完整代码:

const timer = setInterval(() =>{ // 某些定时器操作   }, 500);            
// 通过$once来监听定时器,在beforeDestroy钩子可以被清除。 
this.$once('hook:beforeDestroy', () => {                     
        clearInterval(timer);                                     
})

类似于其他需要在当前页面使用,离开需要销毁的组件(例如一些第三方库的picker组件等等),都可以使用此方式来解决离开后以后在背后运行的问题。

综合来说,我们更推荐使用方案2,使得代码可读性更强,一目了然。如果不清楚$once、$on、$off的使用,这里送上官网的地址教程,在程序化的事件侦听器那里。

以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程网。 

--结束END--

本文标题: vue离开页面时如何销毁定时器

本文链接: https://lsjlt.com/news/150107.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • vue离开页面时如何销毁定时器
    目录vue离开页面销毁定时器组件里定时器销毁问题解决方法1解决方案2vue离开页面销毁定时器 beforeDestroy() { if(this.timer) {     clear...
    99+
    2024-04-02
  • vue离开页面时怎么销毁定时器
    这篇文章主要介绍了vue离开页面时怎么销毁定时器的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇vue离开页面时怎么销毁定时器文章都会有所收获,下面我们一起来看看吧。vue离开页面销毁定时器beforeDestr...
    99+
    2023-06-30
  • vue-router如何实现跳转时打开新页面
    小编给大家分享一下vue-router如何实现跳转时打开新页面,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!1、<vue-...
    99+
    2024-04-02
  • vue页面使用多个定时器的方法
    本文实例为大家分享了vue页面使用多个定时器的具体代码,供大家参考,具体内容如下 问题描述 vue页面使用多个定时器 html: <div class="prod-item"&...
    99+
    2024-04-02
  • vue如何设置定时器和清理定时器
    目录设置定时器和清理定时器1.在data中声明要设置的定时器名称2.在mounted中创建定时器定时器的使用全解1.vue使用定时器2代码实现设置定时器和清理定时器 使用钩子函数对定...
    99+
    2024-04-02
  • AngularJS如何实现页面定时刷新
    这篇文章主要介绍了AngularJS如何实现页面定时刷新,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。有时我们在前端可能会有这样的需求:1、...
    99+
    2024-04-02
  • vue关闭页面时如何去掉监听
    这篇文章主要介绍了vue关闭页面时如何去掉监听的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇vue关闭页面时如何去掉监听文章都会有所收获,下面我们一起来看看吧。在使用 Vue.js 开发 web 应用程序过程中...
    99+
    2023-07-06
  • asp与php中如何定时生成页面
    这篇文章主要介绍asp与php中如何定时生成页面,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!PHP版本的的定时生成页面的:<php$file = dirname(__FILE__)....
    99+
    2023-06-20
  • vue如何添加数组页面及时显示
    目录如何添加数组页面及时显示给对象中添加数组如何添加数组页面及时显示 最近在做vue相关的项目,在过程中,遇到了很多问题,有的解决了,有的还没解决,其中一个比较好的问题是,一个评论回...
    99+
    2024-04-02
  • vue使用elementUI分页如何实现切换页面时返回页面顶部
    目录使用elementUI分页实现切换页面时返回页面顶部原理实现element-ui分页el-pagination的坑1.所有的信息都必须的动态的2.数据在data里面3.这是重中之...
    99+
    2022-11-13
    vue使用elementUI分页 elementUI切换页面 elementUI返回页面顶部
  • vue中定时器setInterval如何使用
    今天小编给大家分享一下vue中定时器setInterval如何使用的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。声明&nbs...
    99+
    2023-07-05
  • layui如何实现多iframe页面控制定时器运行
    这篇文章主要为大家展示了“layui如何实现多iframe页面控制定时器运行”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“layui如何实现多iframe页面控...
    99+
    2024-04-02
  • jQuery如何实现AJAX定时刷新局部页面
    这篇文章主要介绍了jQuery如何实现AJAX定时刷新局部页面,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。方法一:局部刷新我们讲述到最多的...
    99+
    2024-04-02
  • Ajax如何实现无闪烁定时刷新页面
    这篇文章主要介绍Ajax如何实现无闪烁定时刷新页面,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!在Web开发中我们经常需要实现定时刷新某个页面:来保持session的值或者检查session的值是否为空(比如说防止同...
    99+
    2023-06-08
  • react如何关闭页面时间
    这篇文章主要介绍“react如何关闭页面时间”,在日常操作中,相信很多人在react如何关闭页面时间问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”react如何关闭页面时间”的疑惑有所帮助!接下来,请跟着小编...
    99+
    2023-07-04
  • Vue如何优雅的清除定时器
    目录前言 优化 衍生问题:beforeDestroy 没有触发? 前言 清除定时器,相信有相当一部分人是这么写的: export default { data() { ...
    99+
    2024-04-02
  • javascript中怎么让定时器刷新页面
    这篇文章给大家分享的是有关javascript中怎么让定时器刷新页面的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。给大家总结定时器刷新的三种方法方法一:添加 setInterval()函数<script&n...
    99+
    2023-06-14
  • vue如何实现桌面时钟
    这篇文章主要为大家展示了“vue如何实现桌面时钟”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“vue如何实现桌面时钟”这篇文章吧。用vue实现一个简单的网页桌面...
    99+
    2024-04-02
  • Windows10需要开启AWE时如何开启内存锁定页
      内存锁定页是一个挺有用的小工具,尤其在一些时候,比如在使用电脑需要开启AWE的时候。那么内存锁定页该如何开启呢?下面小编就和大家一起来分享下开启内存锁定页的操作方法。   Win10开启内存锁定页的操作方法:   打...
    99+
    2023-06-09
    Win10 内存锁定页 需要 内存 AWE Windows10
  • 定时器在页面最小化时不执行实现示例
    目录引言useInterval 和 useTimeoutsetTimeout 和 setInterval 的问题useRafInterval 和 useRafTimeoutsetRa...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作