今日跟朋友交流,偶然间被问到这个问题:“在vue的生命周期中定义一个定时器,如何在destoryed钩子中不手动卸载的操作下,自动卸载定时器“ 引发了一些思考,也总结出一些之前未接触的代码操作,付诸君一哂

// vue中常见的定义定时器销毁操作如下
export default {...mounted(){this.timer = setTimeout(()=>{//一些操作},1000)},beforeDestroy(){clearTimeout(this.timer)}
}

现在介绍一下更加优雅的写法

export default {...mounted(){let timer = setTimeout(()=>{//一些操作},1000)this.$once('hook:beforeDestroy',()=>{clearTimeout(timer)timer = null})}
}

注意在有keep-alive包裹的组件中不会执行destroy相关的钩子,所以在deactived钩子中清除

export default {...mounted(){let timer = setTimeout(()=>{//一些操作},1000)this.$on('hook:actived',()=>{ //使用$on,需要多次执行if(timer){clearTimeout(timer)}else{timer = setTimeout(()=>{//一些操作},1000)}timer = null})this.$on('hook:deactived',()=>{ //使用$on,需要多次执行clearTimeout(timer)timer = null})}
}

vue优雅的清除定时器相关推荐

  1. vue中clearInterval()清除定时器报timeout.close is not a function错误?

    在vue中实现播放音乐时旋转光碟的功能时候使用到了定时器,在暂停播放音乐的时候清除定时器,但是发现报了一个奇怪的错误: 在网上查了一下,发现报错的原因好像是vue中有自己内置的clearInterva ...

  2. VUE设置和清除定时器

    方法一.在生命周期函数beforeDestroy中清除 data() {return {timer: null;}; }, created() { // 设置定时器,5s执行一次this.timer ...

  3. 关于vue中如何清除定时器的方法

    一.问题 1.在vue中使用setTimeout定时器的时候,可能会遇到关不掉的情况,会存在明明已经在beforeDestroy和destroyed中设置了定时器清除了,但是有时候没生效,定时器还会继 ...

  4. vue项目中清除定时器(清除定时器不成功)

    首先确认< router-view >外层是否有包裹了一层< keep-alive > 如果有包裹: <template><div><keep-a ...

  5. vue beforeDestroy clearInterval清除定时器失效

    我发现遇到这个问题的人挺多的,自己遇到过,改别人代码的时候也遇到过,赶紧记下来~这方法好使~ 情景:路由跳转时触发了beforeDestroy,里面也写了清除计时器的相关代码,但是到其他页面时还是在一 ...

  6. 清除定时器 和 vue 中遇到的定时器setTimeout setInterval问题

    2019-03更新 找到了更简单的方法,以setinterval为例,各位自行参考 mounted() {const that = thisconst timer = setInterval(func ...

  7. vue中定时器一般用法,定时器函数传参以及清除定时器

    一.vue中定时器一般用法(举个例子) 显示当前时间, setInterval()方法会每秒执行一次函数,类似手表功能: <template><div class="use ...

  8. vue 由 clearTimeout无法清除定时器引发的vue 周期函数,事件代码执行顺序思考

    vue 由 clearTimeout无法清除定时器引发的vue 周期函数,事件代码执行顺序思考 最近做个移动的项目,遇到需求:首页无操作20秒,自动退出登录.其他页面20秒无操作,自动跳转首页. 所谓 ...

  9. vue中如何设置和清除定时器setInterval

    data中生明定时器 方法里使用和清除定时器

最新文章

  1. 静态方法、类方法、属性方法
  2. CATALINA_BASE和CATALINA_HOME,多实例tomcat与多版本tomcat运行
  3. LiveVideoStackCon 2022 上海站延期通告(内附最新日程海报)
  4. Smart Template component rendering process - part 2
  5. 恐怖与暴力美学 + 妖魔化:《人皮客栈》观看笔记
  6. java实现社交平台_GitHub - akpaul9527/symphony: 一款用 Java 实现的现代化社区(论坛/BBS/社交网络/博客)平台。...
  7. python3编程入门_python3编程基础之一:操作
  8. Innodb之监控Buffer pool Load progress
  9. java xmpp即时通讯_基于XMPP协议即时通讯工具开发总结
  10. java中子类实例化过程中的内存分配
  11. 点击控件动态创建新页面
  12. SPSS实现多元方差分析
  13. 简单、免费但强大的高效率截图工具——Snipaste(下载安装+常用快捷键教学)
  14. 回望中国计算机学会CCF十大历史贡献
  15. CRM客户关系管理系统源码
  16. 我与网管师职业认证的钦定缘分
  17. GoWeb - GORM
  18. Amazon CloudWatch 互联网监控器预览版,端到端了解应用程序的互联网性能
  19. 降雷皇(最长上升子序列数量)解题报告
  20. 数字图像处理拓展题目——利用Matlab实现动态目标检测 二帧差法、ViBe法、高斯混合模型法,可应用于学生递东西行为检测

热门文章

  1. 如何为ios酷我音乐盒下载导出的音乐文件(使用Java程序设计)
  2. Sql语句优化及存储过程
  3. 不明原因儿童急性肝炎与新冠有关?!柳叶刀子刊最新研究激起千层浪
  4. 面试车祸现场——面试题总结
  5. JAVA配置多数据源并动态切换
  6. 高德地图添加图片覆盖物,限制拖拽缩放范围
  7. 【计网】ping命令
  8. C# 多种方式教你输出五角星
  9. 马云老师开讲新制造,成立平头哥芯片公司,发布城市大脑V2.0,阿里云栖大会重磅发布!...
  10. Microsoft Office 2021 LTSC 专业激活版 win/mac版