vue实现倒计时功能

见如下代码

<template>
  <div>
    <div class="content">
      数据总采集次数:{{ clearTimes }} | 距离下次更新<span
        >{{ minute }}:{{ second }}</span
      >
    </div>
  </div>
</template>

<script>
export default {
  data() {
    return {
      minutes: 15,
      seconds: 0,
    };
  },
  methods: {
    num: function (n) {
      return n < 10 ? "0" + n : "" + n;
    },
    add: function () {
      var _this = this;
      var time = window.setInterval(function () {
        if (_this.seconds === 0 && _this.minutes !== 0) {
          _this.seconds = 59;
          _this.minutes -= 1;
        } else if (_this.minutes === 0 && _this.seconds === 0) {
          _this.seconds = 0;
          window.clearInterval(time);
        } else {
          _this.seconds -= 1;
        }
      }, 1000);
    },
  },
  props: {
    clearTimes: {
      type: Number,
      default: 0,
    },
    intervalFlag: {
      type: Number,
      default: 0,
    },
  },
  mounted() {
    this.add();
  },
  watch: {
    intervalFlag: {
      handler() {
        this.minutes = 15;
        this.seconds = 0
      },
    },
    second: {
      handler(newVal) {
        this.num(newVal);
      },
    },
    minute: {
      handler(newVal) {
        this.num(newVal);
      },
    },
  },
  computed: {
    second: function () {
      return this.num(this.seconds);
    },
    minute: function () {
      return this.num(this.minutes);
    },
  },
};
</script>
<style lang="scss" scoped>
.content {
  width: 100%;
  // text-align: right;
  display: flex;
  justify-content: flex-end;
  height: 30px;
}
</style>
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值