vue3 setup语法糖下的定时器的使用与销毁
更新时间:2024年02月04日 11:13:35 作者:yggjdle
如果在组件中需要使用定时器,注意在销毁组件的时候,要对定时器进行销毁,否则时间长了会导致页面卡顿,这篇文章给大家介绍vue3 setup语法糖下的定时器的使用与销毁的知识,感兴趣的朋友一起看看吧
vue3 setup语法糖下的定时器的使用与销毁
如果在组件中需要使用定时器,注意在销毁组件的时候,要对定时器进行销毁,否则时间长了会导致页面卡顿。
<script setup> onMounted(() => { let timer = null; //每5s刷新数据 timer = setInterval(() => { getAmount(); }, 5000); }) onBeforeUnmount(() => { clearInterval(timer) timer = null; }) </script>
补充:
Vue3 setup语法糖销毁一个或多个定时器(setTimeout或setInterval)
背景
如果在页面/组件增加了定时器,就算跳转到其他页面,定时器也不会被清理,这时候就需要手动清理,不然会有意想不到的bug,也会影响性能。
提示
setTimeout是只执行一次,setInterval是循环执行,以下是用setTimeout举例子,如果想要用setInterval,替换一次方法就行。
- setTimeout替换成setInterval
- clearTimeout替换成clearInterval
销毁一个定时器
<script setup> import {onMounted, onUnmounted} from "vue"; //注意哈,这里是个空 const timer = ref() //先创建一个定时器 onMounted(() => { timer.value=setTimeout(() => { // do something }, 1500) }) //在页面销毁之前先销毁定时器 onUnmounted(() => { clearTimeout(timer.value) timer.value="" })
销毁多个定时器
<script setup> 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语法糖下的定时器的使用与销毁的文章就介绍到这了,更多相关vue3 setup语法糖内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
详解如何在Vue3+TS的项目中使用NProgress进度条
本文主要介绍了详解如何在Vue3+TS的项目中使用NProgress进度条,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧2022-06-06vue中 根据判断条件添加一个或多个style及class的写法小结
这篇文章主要介绍了vue中 根据判断条件添加一个或多个style及class的写法,文中给大家补充介绍了关于vue里:class的使用结合自己的实现给大家讲解,需要的朋友可以参考下2023-03-03
最新评论