当前位置:首页 > 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)
  })
})

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

相关文章

css3制作简单动画

css3制作简单动画

CSS3 制作简单动画的方法 CSS3 提供了多种方式制作动画,主要通过 transition、transform 和 animation 属性实现。以下是几种常见的实现方法。 使用 transit…

vue实现简单树

vue实现简单树

使用 Vue 实现简单树形结构 递归组件实现 递归组件是 Vue 实现树形结构的常见方式。通过组件调用自身实现无限层级嵌套。 <template> <ul> &l…

vue修改简单实现

vue修改简单实现

Vue 修改简单实现 在 Vue 中实现简单的修改操作,通常涉及数据绑定、方法调用和响应式更新。以下是几种常见场景的实现方式: 修改数据并更新视图 Vue 的响应式系统会自动追踪数据变化并更新视图。…

vue简单的列表实现

vue简单的列表实现

实现简单的 Vue 列表 在 Vue 中实现列表功能通常使用 v-for 指令。以下是一个基础的列表实现示例: <template> <div> <ul&g…

vue简单查询功能实现

vue简单查询功能实现

实现 Vue 简单查询功能 1. 创建 Vue 实例与数据绑定 在 Vue 实例的 data 中定义查询关键词 searchQuery 和数据列表 items。通过 v-model 实现输入框与数据…

react实现定时器

react实现定时器

使用 setInterval 实现定时器 在 React 中,可以通过 setInterval 实现定时器功能。需要在组件挂载时启动定时器,并在组件卸载时清除定时器以避免内存泄漏。 import R…