vue时间倒计时-休眠用法/计时器用法

倒计时的两种用法:

一、计时器的用法

页面部分

<span class="time-minute">{{timeMinute}}</span>
<span class="time-unit">分</span>
<span class="time-second">{{timeSecond}}</span>
<span class="time-unit">秒</span>

js部分

export default {
    data() {
        return {
            // 倒计时
            value:14,
            // 秒数
            second:59,
            // 分钟(定时器名称)
            minute:null,
            // 毫秒(定时器名称)
            millisecond:null,
        }
    }
    // 计算属性
    computed: {
        //  格式化倒计时分钟
         timeMinute() {
             if (this.value < 10)
                 return `0${this.value}`;
             return this.value;
         },
         timeSecond() {
             if (this.second < 10)
                 return `0${this.second}`;
             return this.second;
         },
      }
    // 关闭页面
    beforeDestroy() {
        // 清空分钟定时器
         clearInterval(this.minute);
        // 清空秒定时器
         clearInterval(this.millisecond);
        // 分钟(定时器名称)
         this.minute=null,
        // 秒(定时器名称)
         this.millisecond=null,
    },
// 方法
methods: {
    bearing() {
            this.sleepTen()
            // 倒计时分钟
             this.minute = setInterval(() => {
                 if(this.value<0) this.value = 14
                 this.value -= 1
             }, 60000);
             // 倒计时秒
             this.millisecond = setInterval(() => {
                 if(this.second<1) this.second = 60
                 this.second -=1
                 if(this.value<0 && this.second<1) {
                     // 从新调取二维码
                     this.renovate()
                 }
             }, 1000);
        }
    }
}

二、休眠用法

页面还是上面的页面

js部分

    // 每一次跑的事件
     sleep(duration) {
            return new Promise(resolve => {
                setTimeout(resolve, duration * 1000)
            })
        },
        // 执行倒计时
        async sleepTen() {
            // 15分钟总共的秒数
            let timepredict = 15*60
            // 循环去倒计时
            for(; timepredict> 0; ) {
                // 每一次都减1并执行上面的事件
                timepredict = timepredict - 1;
                await this.sleep(1);
                // 分钟(取整)
                this.value = Math.floor(timepredict / 60);
                // 秒(取余)
                this.second = timepredict % 60;
            }
        },

优缺点对比:

1、休眠用法代码要比计时器的代码要少很多(代码简洁)

2、休眠用法他只要关闭这个页面后,程序跑完只要你不做从新调取,它只会执行一遍,计时器如果你不关掉的话,会一直执行(需要设置开关)

3、倒计时上区分,时分秒只需要在for循环上进行计算就行了,不用在每一个方法去进行计算时分秒(计算简洁)

原文地址:https://www.cnblogs.com/yishifuping/p/12123491.html

时间: 2024-07-30 23:40:49

vue时间倒计时-休眠用法/计时器用法的相关文章

vue框架中props的typescript用法

vue框架中props的typescript用法 在vue中使用typescript时,需要引入vue-property-decorator库来兼容格式. javascript写法 Vue.component('blog-post', { // 在 JavaScript 中是 camelCase 的 props: ['postTitle'], template: '<h3>{{ postTitle }}</h3>' }) typescript写法 @Prop({ type: Arr

java中静态代码块的用法 static用法详解

(一)java 静态代码块 静态方法区别一般情况下,如果有些代码必须在项目启动的时候就执行的时候,需要使用静态代码块,这种代码是主动执行的;需要在项目启动的时候就初始化,在不创建对象的情况下,其他程序来调用的时候,需要使用静态方法,这种代码是被动执行的. 静态方法在类加载的时候 就已经加载 可以用类名直接调用比如main方法就必须是静态的 这是程序入口两者的区别就是:静态代码块是自动执行的;静态方法是被调用的时候才执行的.静态方法(1)在Java里,可以定义一个不需要创建对象的方法,这种方法就是

时间倒计时

JavaScript中的Date日期对象 Date()返回当前日期和时间 getDate()查看Date对象并返回日期(1-31) getDay()返回星期几(0-6) getHours()返回小时数(0-23) getMinutes()返回分钟数(0-59) getMonth()返回月份值(从0开始,+1) getSeconds() 返回秒数 getTime() getYear() getFullYear() 时间倒计时代码如下: <!DOCTYPE HTML><html><

指定时间倒计时

<!doctype html><html><head> <meta charset="utf-8"> <title>指定时间倒计时</title></head><body><DIV id="CountMsg" class="HotDate"> <span id="t_d">00天</span> &

JavaScript 倒计时(截止某日期的倒计时和截止每晚12点的倒计时以及固定时间倒计时)

截止某日期的倒计时和截止每晚12点倒计时: <!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> </head> <body> <h1 id="divTime"></h1> </body> <script type="text/javascript&qu

原生js 当前时间 倒计时代码

源:https://www.oschina.net/code/snippet_2318153_54763 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <title>原生js 当前时间 倒计时代码</ti

JS时间倒计时

<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=utf8" /><title>JS时间倒计时</title><script type="text/javascript">var time_

ecshop促销时间倒计时效果

ecshop促销时间倒计时效果的实现如下: 1.首先修改程序部分 打开includes/lib_goods.php 找到get_promote_goods()函数部分 在 $goods[$idx]['url'] = build_uri('goods', array('gid' => $row['goods_id']), $row['goods_name']); 下面增加代码 $time = gmtime(); if ($time >= $row['promote_start_date'] &a

SharePoint 时间倒计时源码共享

今天老板让我们用SharePoint做了一个时间倒计时的插件,主要功能就是,手动输入你想查询的节日,然后输入日期,得出一个该节日的倒计时结果. 下面是主要代码内容: 第一个SharePoint成品,写的不好还望大家多多包含.如果有什么意见或建议还请给位大神提出来,以便于我的提高.