vue3 setup語(yǔ)法糖下的定時(shí)器的使用與銷(xiāo)毀
vue3 setup語(yǔ)法糖下的定時(shí)器的使用與銷(xiāo)毀
如果在組件中需要使用定時(shí)器,注意在銷(xiāo)毀組件的時(shí)候,要對(duì)定時(shí)器進(jìn)行銷(xiāo)毀,否則時(shí)間長(zhǎng)了會(huì)導(dǎo)致頁(yè)面卡頓。
<script setup> onMounted(() => { let timer = null; //每5s刷新數(shù)據(jù) timer = setInterval(() => { getAmount(); }, 5000); }) onBeforeUnmount(() => { clearInterval(timer) timer = null; }) </script>
補(bǔ)充:
Vue3 setup語(yǔ)法糖銷(xiāo)毀一個(gè)或多個(gè)定時(shí)器(setTimeout或setInterval)
背景
如果在頁(yè)面/組件增加了定時(shí)器,就算跳轉(zhuǎn)到其他頁(yè)面,定時(shí)器也不會(huì)被清理,這時(shí)候就需要手動(dòng)清理,不然會(huì)有意想不到的bug,也會(huì)影響性能。
提示
setTimeout是只執(zhí)行一次,setInterval是循環(huán)執(zhí)行,以下是用setTimeout舉例子,如果想要用setInterval,替換一次方法就行。
- setTimeout替換成setInterval
- clearTimeout替換成clearInterval
銷(xiāo)毀一個(gè)定時(shí)器
<script setup> import {onMounted, onUnmounted} from "vue"; //注意哈,這里是個(gè)空 const timer = ref() //先創(chuàng)建一個(gè)定時(shí)器 onMounted(() => { timer.value=setTimeout(() => { // do something }, 1500) }) //在頁(yè)面銷(xiāo)毀之前先銷(xiāo)毀定時(shí)器 onUnmounted(() => { clearTimeout(timer.value) timer.value="" })
銷(xiāo)毀多個(gè)定時(shí)器
<script setup> import {onMounted, onUnmounted} from "vue"; //注意哈,是個(gè)數(shù)組,不是對(duì)象,當(dāng)然用對(duì)象的方式也行 const timer = ref([]) //先創(chuàng)建數(shù)個(gè)定時(shí)器 onMounted(() => { timer.value.push(setTimeout(() => { // do something }, 1500)) timer.value.push(setTimeout(() => { // do something }, 1800)) }) //在頁(yè)面銷(xiāo)毀之前先銷(xiāo)毀定時(shí)器 onUnmounted(() => { for (const timerElement of timer.value) { clearTimeout(timerElement) } timer.value=[] })
到此這篇關(guān)于vue3 setup語(yǔ)法糖下的定時(shí)器的使用與銷(xiāo)毀的文章就介紹到這了,更多相關(guān)vue3 setup語(yǔ)法糖內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
vue實(shí)現(xiàn)html轉(zhuǎn)化pdf并復(fù)制文字
這篇文章主要為大家詳細(xì)介紹了vue實(shí)現(xiàn)html轉(zhuǎn)化pdf的兩種方式,分別為能復(fù)制文字和不能復(fù)制文字的方法,有需要的小伙伴可以跟隨小編一起學(xué)習(xí)一下2024-10-10vue+el使用this.$confirm,不能阻斷代碼往下執(zhí)行的解決
這篇文章主要介紹了vue+el使用this.$confirm,不能阻斷代碼往下執(zhí)行的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-09-09Vue項(xiàng)目中Websocket的使用實(shí)例
WebSocket就誕生了,它最大特點(diǎn)就是服務(wù)器可以主動(dòng)向客戶(hù)端推送信息,客戶(hù)端也可以主動(dòng)向服務(wù)器發(fā)送信息,是真正的雙向平等對(duì)話,下面這篇文章主要給大家介紹了關(guān)于Vue項(xiàng)目中Websocket使用的相關(guān)資料,需要的朋友可以參考下2023-02-02vue手寫(xiě)<RouterLink/>組件實(shí)現(xiàn)demo詳解
這篇文章主要為大家介紹了vue手寫(xiě)<RouterLink/>組件實(shí)現(xiàn)demo詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-06-06vue element-ui里的table中表頭與表格出現(xiàn)錯(cuò)位的解決
這篇文章主要介紹了vue element-ui里的table中表頭與表格出現(xiàn)錯(cuò)位的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-08-08npm無(wú)法加載文件:因?yàn)樵诖讼到y(tǒng)上禁止運(yùn)行腳本的解決辦法
這篇文章主要介紹了npm無(wú)法加載文件:因?yàn)樵诖讼到y(tǒng)上禁止運(yùn)行腳本問(wèn)題的解決辦法,文中通過(guò)代碼以及圖文介紹的非常詳細(xì),需要的朋友可以參考下2025-01-01在vue項(xiàng)目中promise解決回調(diào)地獄和并發(fā)請(qǐng)求的問(wèn)題
這篇文章主要介紹了在vue項(xiàng)目中promise解決回調(diào)地獄和并發(fā)請(qǐng)求的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-11-11vue 打包后的文件部署到express服務(wù)器上的方法
vue是目前最流行的前端框架,今天要介紹的是如何利用vue+webpack+express的方式進(jìn)行前后端分離的開(kāi)發(fā),下面通過(guò)本文給大家分享vue 打包后的文件部署到express服務(wù)器上的方法,感興趣的朋友一起看看吧2017-08-08