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

方法封装实现

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

vue定时器简单实现

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生命周期钩子实现定时器。

vue定时器简单实现

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自动清理副作用。

import { watchEffect } from 'vue'

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

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

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

相关文章

简单实现vue

简单实现vue

Vue 的基本实现 创建一个简单的 Vue 应用需要引入 Vue 库,并编写基本的模板和数据绑定逻辑。 <!DOCTYPE html> <html lang="en"> &l…

简单实现vue github

简单实现vue github

实现一个简单的 Vue 项目并上传到 GitHub 创建 Vue 项目 使用 Vue CLI 快速初始化一个 Vue 项目,确保已安装 Node.js 和 npm/yarn。运行以下命令创建项目:…

vue实现简单表格

vue实现简单表格

Vue 实现简单表格的方法 使用原生 HTML 表格 在 Vue 模板中可以直接使用 HTML 原生表格标签,通过 v-for 动态渲染数据: <template> <tab…

css3制作简单动画

css3制作简单动画

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