当前位置:首页 > VUE

vue实现setinterval计数

2026-01-18 20:25:20VUE

vue实现setinterval计数

vue实现setinterval计数

Vue 实现 setInterval 计数的方法

在 Vue 中实现 setInterval 计数功能,可以通过以下几种方式实现。需要注意在组件销毁时清除定时器,以避免内存泄漏。

方法一:在 mounted 钩子中启动定时器

<template>
  <div>计数: {{ count }}</div>
</template>

<script>
export default {
  data() {
    return {
      count: 0,
      timer: null
    }
  },
  mounted() {
    this.timer = setInterval(() => {
      this.count++
    }, 1000)
  },
  beforeDestroy() {
    clearInterval(this.timer)
  }
}
</script>

方法二:使用 methods 封装定时器逻辑

<template>
  <div>计数: {{ count }}</div>
</template>

<script>
export default {
  data() {
    return {
      count: 0,
      timer: null
    }
  },
  methods: {
    startCounter() {
      this.timer = setInterval(() => {
        this.count++
      }, 1000)
    },
    stopCounter() {
      clearInterval(this.timer)
    }
  },
  mounted() {
    this.startCounter()
  },
  beforeDestroy() {
    this.stopCounter()
  }
}
</script>

方法三:使用 Vue 3 Composition API

<template>
  <div>计数: {{ count }}</div>
</template>

<script>
import { ref, onMounted, onBeforeUnmount } from 'vue'

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

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

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

    return {
      count
    }
  }
}
</script>

方法四:使用 Vue 3 的 watchEffect

<template>
  <div>计数: {{ count }}</div>
</template>

<script>
import { ref, watchEffect } from 'vue'

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

    watchEffect((onInvalidate) => {
      const timer = setInterval(() => {
        count.value++
      }, 1000)

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

    return {
      count
    }
  }
}
</script>

注意事项

  • 定时器需要在组件销毁时清除,否则会导致内存泄漏
  • 在 Vue 3 中可以使用 onBeforeUnmountwatchEffect 的清理函数
  • 如果需要暂停和恢复计数功能,可以将定时器逻辑封装为方法

标签: vuesetinterval
分享给朋友:

相关文章

vue实现登录

vue实现登录

实现登录功能的基本步骤 创建登录表单 使用Vue的v-model指令双向绑定表单数据,例如用户名和密码。表单应包含提交按钮,触发登录方法。 <template> <form @…

vue实现管道

vue实现管道

Vue 中实现管道(Pipe)功能 在 Vue 中可以通过过滤器(Filters)或计算属性(Computed Properties)实现类似管道的功能,将数据经过多个处理步骤后输出。 使用过滤器(…

vue 实现级联

vue 实现级联

Vue 实现级联选择器 级联选择器(Cascader)常用于省市区选择、分类选择等场景。Vue 中可以通过 Element UI、Ant Design Vue 等 UI 库实现,也可以手动封装。 使…

vue实现盖章

vue实现盖章

Vue 实现盖章功能 在Vue中实现盖章功能通常涉及前端UI交互,通过Canvas或SVG绘制印章,并允许用户拖拽或点击放置印章。以下是具体实现方法: 使用Canvas绘制印章 通过HTML5的Ca…

vue toast实现

vue toast实现

Vue Toast 实现方法 使用第三方库(推荐) 安装 vue-toastification 库,这是一个功能丰富且轻量级的 Vue Toast 插件。 npm install vue-toast…

vue实现Pop

vue实现Pop

Vue 实现 Popover 组件的方法 使用 Vue 内置指令 v-show/v-if 和事件监听 通过 Vue 的指令和事件绑定实现基础的 Popover 功能。定义一个布尔值控制 Popover…