当前位置:首页 > VUE

vue定时器简单实现

2026-03-06 18:35:00VUE

在Vue中实现定时器的简单方法

使用setIntervalsetTimeout创建定时器,注意在组件销毁时清除定时器避免内存泄漏

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

使用Vue的$once方法自动清理

利用Vue实例的$once监听钩子函数,实现自动清除定时器

mounted() {
  const timer = setInterval(() => {
    // 定时器逻辑
  }, 1000)

  this.$once('hook:beforeDestroy', () => {
    clearInterval(timer)
  })
}

使用Composition API实现

在Vue3中使用setup和生命周期钩子实现定时器

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

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

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

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

    return { count }
  }
}

封装可复用的定时器逻辑

创建可复用的定时器函数,便于在多个组件中使用

vue定时器简单实现

// utils/timer.js
export function useInterval(callback, delay) {
  const savedCallback = ref()

  savedCallback.value = callback

  onMounted(() => {
    function tick() {
      savedCallback.value()
    }
    if (delay !== null) {
      let id = setInterval(tick, delay)
      onBeforeUnmount(() => clearInterval(id))
    }
  })
}

// 组件中使用
import { useInterval } from '@/utils/timer'

export default {
  setup() {
    const count = ref(0)

    useInterval(() => {
      count.value++
    }, 1000)

    return { count }
  }
}

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

相关文章

vue 实现简单登录

vue 实现简单登录

实现 Vue 简单登录功能 创建登录组件 在 Vue 项目中创建一个登录组件 Login.vue,包含用户名和密码输入框以及登录按钮。 <template> <div clas…

vue  简单菜单实现

vue 简单菜单实现

实现简单菜单的步骤 在 Vue 中实现一个简单的菜单,可以通过以下方法完成: 使用 v-for 动态渲染菜单项 在 Vue 的模板中,使用 v-for 遍历菜单数据,动态生成菜单项。 <…

vue修改简单实现

vue修改简单实现

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

vue简单代码实现

vue简单代码实现

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

vue实现简单登录功能

vue实现简单登录功能

实现登录功能的基本步骤 安装Vue及相关依赖,确保项目环境配置正确。使用Vue CLI创建项目或直接在现有项目中集成Vue。 创建登录表单组件,包含用户名和密码输入框。使用v-model实现双向数据…

如何在react组件加定时器

如何在react组件加定时器

使用useEffect和setTimeout 在React函数组件中,可以通过useEffect钩子和setTimeout实现定时器功能。组件卸载时需要清除定时器以避免内存泄漏。 import Re…