Vue3 setup语法糖销毁一个或多个定时器(setTimeout或setInterval)

03-13 1318阅读 0评论

背景

如果在页面/组件增加了定时器,就算跳转到其他页面,定时器也不会被清理,这时候就需要手动清理,不然会有意想不到的bug,也会影响性能。

Vue3 setup语法糖销毁一个或多个定时器(setTimeout或setInterval),Vue3 setup语法糖销毁一个或多个定时器(setTimeout或setInterval),词库加载错误:未能找到文件“C:\Users\Administrator\Desktop\火车头9.8破解版\Configuration\Dict_Stopwords.txt”。,方法,创建,性能,第1张
(图片来源网络,侵删)

提示

setTimeout是只执行一次,setInterval是循环执行,以下是用setTimeout举例子,如果想要用setInterval,替换一次方法就行。

  • setTimeout替换成setInterval
  • clearTimeout替换成clearInterval

    销毁一个定时器

    import {onMounted, onUnmounted} from "vue";
    //注意哈,这里是个空
    const timer = ref()
    //先创建一个定时器
    onMounted(() => {
      timer.value=setTimeout(() => {
        // do something
      }, 1500)
    })
    //在页面销毁之前先销毁定时器
    onUnmounted(() => {
      clearTimeout(timer.value)
      timer.value=""
    })
    

    销毁多个定时器

    import {onMounted, onUnmounted} from "vue";
    //注意哈,是个数组,不是对象,当然用对象的方式也行
    const timer = ref([])
    //先创建数个定时器
    onMounted(() => {
      timer.value.push(setTimeout(() => {
        // do something
      }, 1500))
      timer.value.push(setTimeout(() => {
        // do something
      }, 1800))
    })
    //在页面销毁之前先销毁定时器
    onUnmounted(() => {
      for (const timerElement of timer.value) {
        clearTimeout(timerElement)
      }
      timer.value=[]
    })
    
    Vue3 setup语法糖销毁一个或多个定时器(setTimeout或setInterval),Vue3 setup语法糖销毁一个或多个定时器(setTimeout或setInterval),词库加载错误:未能找到文件“C:\Users\Administrator\Desktop\火车头9.8破解版\Configuration\Dict_Stopwords.txt”。,方法,创建,性能,第2张
    (图片来源网络,侵删)
    Vue3 setup语法糖销毁一个或多个定时器(setTimeout或setInterval),Vue3 setup语法糖销毁一个或多个定时器(setTimeout或setInterval),词库加载错误:未能找到文件“C:\Users\Administrator\Desktop\火车头9.8破解版\Configuration\Dict_Stopwords.txt”。,方法,创建,性能,第3张
    (图片来源网络,侵删)

免责声明
本网站所收集的部分公开资料来源于AI生成和互联网,转载的目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。
文章版权声明:除非注明,否则均为主机测评原创文章,转载或复制请以超链接形式并注明出处。

发表评论

快捷回复: 表情:
评论列表 (暂无评论,1318人围观)

还没有评论,来说两句吧...

目录[+]