VUE轮询

一、前言

  • setInterval不会清除定时器队列,每重复执行1次都会导致定时器叠加,会出现网页卡死现象。但是setTimeout是自带清除定时器的,两者结合使用将避免页面卡死。

  • 离开页面时,通过生命周期onUnmounted钩子函数,清除定时器。

二、代码注释详解

xml 复制代码
<template>
  <div class="box">content</div>
</template>
<script setup>
import { ref, reactive, onUnmounted } from 'vue';
const data = reactive({
  setIntervalFlag: null
})
// 获取数据
const getList = () => {
  //这里是请求接口相关逻辑
}
// 首先获取数据一次数据
getList()
// 五秒取一次,轮询更新
data.setIntervalFlag = setInterval(() => {
  // 嵌套定时器,利用setTimeout清除机制
  setTimeout(() => {
    getList()
  }, 0)
}, 5000)

// 组件被卸载后清除定时器
onUnmounted(() => {
  clearInterval(data.setIntervalFlag)
  data.setIntervalFlag = null
})
// const { } = toRefs(data)
</script>
<style scoped lang="scss"></style>
相关推荐
阿祖zu2 分钟前
内容创作 AI 透明化声明倡议与项目开源
前端·后端·github
lpfasd1237 分钟前
TypeScript + Cloudflare 全家桶部署项目全流程
前端·javascript·typescript
ZC跨境爬虫11 分钟前
极验滑动验证码自动化实战:背景提取、缺口定位与Playwright滑动模拟
前端·爬虫·python·自动化
前端Hardy26 分钟前
字节/腾讯内部流出!Claude Code 2026王炸玩法!效率暴涨10倍
前端·javascript·vue.js
糟糕好吃32 分钟前
AI 全流程解析(LLM / Token / Context / RAG / Prompt / Tool / Skill / Agent)
前端·后端·设计模式
快手技术38 分钟前
快手广告系统全面迈入生成式推荐时代!GR4AD:从Token到Revenue的全链路重构
前端·后端
前端Hardy39 分钟前
大厂都在偷偷用的 Cursor Rules 封装!告别重复 Prompt,AI 编程效率翻倍
前端·javascript·面试
kyriewen40 分钟前
Vite:比Webpack快100倍的“闪电侠”,原理竟然这么简单?
前端·javascript·vite
竹林81840 分钟前
RainbowKit快速集成多链钱包连接:从“连不上”到丝滑切换的踩坑实录
前端·javascript
小小小小宇1 小时前
前端看go并发
前端