当前位置:首页 > VUE

vue定时器简单实现

2026-01-07 04:59:30VUE

定时器基础实现

在Vue中使用setIntervalclearInterval实现定时器功能。在组件的data中定义计时器变量,mounted钩子中启动定时器,beforeDestroy钩子中清除定时器避免内存泄漏。

export default {
  data() {
    return {
      timer: null,
      count: 0
    }
  },
  mounted() {
    this.timer = setInterval(() => {
      this.count++
      console.log('定时执行', this.count)
    }, 1000)
  },
  beforeDestroy() {
    clearInterval(this.timer)
  }
}

方法封装实现

将定时器逻辑封装为可复用的方法,便于在多个地方调用和控制。

export default {
  data() {
    return {
      timer: null,
      isActive: false
    }
  },
  methods: {
    startTimer() {
      this.timer = setInterval(this.tick, 1000)
      this.isActive = true
    },
    stopTimer() {
      clearInterval(this.timer)
      this.isActive = false
    },
    tick() {
      console.log('定时执行')
    }
  }
}

使用Vue3 Composition API

Vue3的setup语法中使用onMountedonUnmounted生命周期钩子实现定时器。

import { ref, onMounted, onUnmounted } from 'vue'

export default {
  setup() {
    const count = ref(0)
    let timer = null

    onMounted(() => {
      timer = setInterval(() => {
        count.value++
      }, 1000)
    })

    onUnmounted(() => {
      clearInterval(timer)
    })

    return { count }
  }
}

使用第三方库

安装vue-timers插件简化定时器管理,自动处理组件销毁时的清理工作。

npm install vue-timers
import Vue from 'vue'
import VueTimers from 'vue-timers'

Vue.use(VueTimers)

export default {
  timers: {
    logTime: { time: 1000, autostart: true }
  },
  methods: {
    logTime() {
      console.log('每秒执行')
    }
  }
}

注意事项

定时器需要在组件销毁时手动清除,否则会导致内存泄漏。在Vue3中可以使用watchEffect自动清理副作用。

vue定时器简单实现

import { watchEffect } from 'vue'

watchEffect((onInvalidate) => {
  const timer = setInterval(() => {
    console.log('执行')
  }, 1000)

  onInvalidate(() => {
    clearInterval(timer)
  })
})

标签: 定时器简单
分享给朋友:

相关文章

简单实现vue github

简单实现vue github

实现 Vue 项目并托管到 GitHub 的步骤 创建 Vue 项目 使用 Vue CLI 快速初始化项目,确保已安装 Node.js 和 npm/yarn。 运行命令: npm init vu…

vue简单实现删除

vue简单实现删除

Vue 删除功能实现 使用 v-for 和 splice 方法删除数组元素 <template> <div> <ul> <li v-…

vue简单代码实现

vue简单代码实现

以下是一个基于 Vue 3 的简单代码实现示例,包含基础功能演示: 基础模板结构 <!DOCTYPE html> <html lang="en"> <head>…

vue轮播图简单实现

vue轮播图简单实现

使用 Vue 实现轮播图 以下是一个基于 Vue 3 的简单轮播图实现方法,无需依赖第三方库。 基础结构 在 Vue 单文件组件中,通过 v-for 渲染图片列表,并用 CSS 控制切换效果。 &…

vue底部导航简单实现

vue底部导航简单实现

使用 Vue Router 实现底部导航 在 Vue 项目中,可以通过 Vue Router 和自定义组件实现底部导航。以下是一个简单的实现示例: 安装 Vue Router(如果尚未安装):…

vue实现简单登录注册

vue实现简单登录注册

Vue 实现登录注册功能 项目初始化 使用 Vue CLI 创建项目 vue create auth-demo cd auth-demo 安装必要依赖 npm install axios vue-…