vue中关于定时器的使用总结:

本文详细介绍了JavaScript中的定时器功能,包括一次性执行的setTimeout方法和循环执行的setInterval方法,并提供了具体的Vue示例代码,同时探讨了如何正确地向定时器传递参数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、定时执行 (setTimeout)

在达到时间后只会执行一次,第一个参数为方法名或者方法,注意为方法名的时候不要加括号,第二个参数为时间间隔。

<template>
  <section>
    <h1>hello world~</h1>
  </section>
</template>
<script>
  export default {
    data() {
      return {
        timer: '',
        value: 0
      };
    },
    methods: {
      get() {
        this.value ++;
        console.log(this.value);
      }
    },
    mounted() {
      //一秒后执行一次get方法,打印1
      this.timer = setTimeout(this.get, 1000);
    },

    //销毁定时器,不然会一直存在
    beforeDestroy() {
      clearTimeout(this.timer);
    }
  };
</script>

2、循环执行(setInterval)

 在一定的时间内一直无限循环执行,直到销毁,用法和setTimeout一样。

<template>
  <section>
    <h1>hello world~</h1>
  </section>
</template>
<script>
  export default {
    data() {
      return {
        timer: '',
        value: 0
      };
    },
    methods: {
      get() {
        this.value ++;
        console.log(this.value);
      }
    },
    mounted() {
      //每隔一秒钟就不断的运行get函数,打印1,2,3,4,5,......
      this.timer = setInterval(this.get, 1000);
    },
    //销毁定时器
    beforeDestroy() {
      clearInterval(this.timer);
    }
  };
</script>

3、定时器的传参问题

传统的方式是不能给定时器传递参数的,比如:

setInterval(this.get(1,2), 1000); //这样并不能将参数(1,2)传递给定时器使用

如要传递参数,下面只介绍一种简单的方法,即直接将方法定义在mounted()中:

<template>
  <section>
    <h1>{{totle}}</h1>
  </section>
</template>
<script>
  export default {
    data() {
      return {
        timer: '',
        value: 1,
        totle:0,
      };
    },
    methods: {
    },
    mounted() {
      //每隔一秒钟就不断的运行add函数,不断打印1+2+3+......的值
      this.timer = window.setInterval(function () {
        add(0, this.value);
      }, 1000);

      function add(num,value){
        this.totle = num + value;
        this.value = this.value+1;
    },
    //销毁定时器
    beforeDestroy() {
      clearInterval(this.timer);
    }
  };
</script>

更多方法参考:setInterval(code, time)中code传递参数办法 - Young Dreamer - 博客园

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值