<template>
<span>
<i v-text="msg"></i>
</span>
</template> <script>
export default {
name: "Timer",
props: ['time'], // 接收 时间为秒
data() {
return {
msg: '',
timer: null,
myTime: null,
}
},
components: {},
mounted() {
this.myTime = this.time;
this.start();
},
methods: {
start() {
if (this.myTime == 0) {
this.msg = '00:00';
this.$emit('callback')
clearTimeout(this.timer)
this.timer = null;
} else {
this.msg = this.getText(this.myTime);
this.myTime--;
this.timer = setTimeout(() => {
this.start();
}, 1000)
}
},
zero: function (n) { // 补0
var n = parseInt(n, 10);
if (n > 0) {
if (n <= 9) {
n = "0" + n;
}
return String(n);
} else {
return "00";
}
},
getText(time) {
let year, month, day, hour, mini, sec;
if (time > 0) {
sec = this.zero(time % 60);
mini = Math.floor((time / 60)) > 0 ? this.zero(Math.floor((time / 60)) % 60) : "00";
hour = Math.floor((time / 3600)) > 0 ? this.zero(Math.floor((time / 3600)) % 24) : "00";
day = Math.floor((time / 86400)) > 0 ? this.zero(Math.floor((time / 86400)) % 30) : "00";
//月份,以实际平均每月秒数计算
month = Math.floor((time / 2629744)) > 0 ? this.zero(Math.floor((time / 2629744)) % 12) : "00";
//年份,按按回归年365天5时48分46秒算
year = Math.floor((time / 31556926)) > 0 ? Math.floor((time / 31556926)) : "0";
return `${mini}:${sec}`
} else {
return '00:00'
}
}
}
}
</script> <style type="text/scss" scoped lang=""> </style>

 

<template>
<div>
<div>
<timer :time="time1" @callback="getMark1"></timer>
</div>
<div>
<timer :time="time2" @callback="getMark2"></timer>
</div>
</div>
</template> <script>
import timer from '@/components/Timer'
export default {
name: "Sign",
data() {
return {
time1:121, // 单位 秒
time2: 30,
}
},
components: {timer},
mounted() {
},
methods: {
getMark1 () {
console.log('1111')
},
getMark2() {
console.log('2222')
}
}
}
</script> <style scoped lang=""> </style>

  

vue 倒计时组件的更多相关文章

  1. Vue 倒计时组件封装

    项目中需要用到倒计时的功能,封装了一个组件. 代码解读: 1:created周期中获取传入参数时间的剩余秒数: this.initSecondsLeft() 并绑定间隔事件 intervalEvent ...

  2. Vue回炉重造之封装防刷新考试倒计时组件

    <!-- 考试倒计时组件 --> <template> <div class="time"> <p>00:{{timerCount2 ...

  3. Vue2.0进阶组件 短信倒计时组件

    原本我想隔个几天再发文章,刚好今天项目上线,环境有问题,导致只有干等,刚好要为公司打造一套属于公司自己的一系列功能组件,这个使命就交给我了,大家也一直叫我来点干货,说实话我只是一个湿货,肚子里干一点就 ...

  4. Vue3语法快速入门以及写一个倒计时组件

    Vue3写一个倒计时组件 vue3 beta版本发布已有一段时间了,文档也大概看了一下,不过对于学一门技术,最好的方法还是实战,于是找了一个比较简单的组件用vue3来实现,参考的是vant的count ...

  5. vue.js组件化开发实践

    前言 公司目前制作一个H5活动,特别是有一定统一结构的活动,都要码一个重复的轮子.后来接到一个基于模板的活动设计系统的需求,便有了下面的内容.借油开车. 组件化 需求一到,接就是怎么实现,技术选型自然 ...

  6. 如何理解vue.js组件的作用域是独立的

    vue.js组件的作用域是独立,可以从以下三个方面理解: 1.父组件模板在父组件作用域内编译,父组件模板的数据用父组件内data数据:2.子组件模板在子组件作用域内编译,子组件模板的数据用子组件内da ...

  7. Vue 子组件向父组件传参

    直接上代码 <body> <div id="counter-event-example"> <p>{{ total }}</p> & ...

  8. VUE.JS组件化

    VUE.JS组件化 前言 公司目前制作一个H5活动,特别是有一定统一结构的活动,都要码一个重复的轮子.后来接到一个基于模板的活动设计系统的需求,便有了下面的内容.借油开车. 组件化 需求一到,接就是怎 ...

  9. Vue动态组件

    前面的话 让多个组件使用同一个挂载点,并动态切换,这就是动态组件.本文将详细介绍Vue动态组件 概述 通过使用保留的 <component> 元素,动态地绑定到它的 is 特性,可以实现动 ...

随机推荐

  1. 接口自动化:HttpClient + TestNG + Java(四) - 封装和测试post方法请求

    在上一篇中,我们对第一个自动化接口测试用例做了初步优化和断言,这一篇我们处理POST请求. 4.1 发送POST方法请求 post方法和get方法是我们在做接口测试时,绝大部分场景下要应对的主要方法. ...

  2. Java I/O不迷茫,一文为你导航!

    前言:在之前的面试中,每每问到关于Java I/O 方面的东西都感觉自己吃了大亏..所以这里抢救一下..来深入的了解一下在Java之中的 I/O 到底是怎么回事..文章可能说明类的文字有点儿多,希望能 ...

  3. WCF优雅使用 KnownType标记的方法

    [KnownType("DerivedTypes")] [DataContract] public abstract class TaskBase { // other class ...

  4. C#学习笔记之值类型与引用类型

    [TOC] C#学习笔记之值类型与引用类型 1.值类型与引用类型 1.1 深层区别 值类型与引用类型有不同的内存分布,这导致了不同的内存管理机制: 值类型由OS负责内存管理 引用类型由垃圾回收器(GC ...

  5. Java 初始化a=2 打印a+++a++为5

    这段程序大概这样: public static void main(String[] args){ int a = 2; System.out.println(a+++a++); } 编译后的字节码为 ...

  6. C# 文件绝对路径与相对路径的转换

    class Program { const string CONFIG_PATH = @"C:\SoftWare\Config.xml"; const string IMAGE_P ...

  7. Android ViewPager+Fragment 在Activity中获取Fragment的控件

    如果ViewPager+Fragment实现Tab切换,在activity中利用adapter.getItem获取到fragment然后再根据fragment.的方法获取控件 //隐藏求租,以下代码用 ...

  8. 基于Android的模拟点击探索

    前言 压力测试中,一般会用到自动化测试.准备写一个APP,可以记录屏幕上的点击事件,然后通过shell命令来模拟自动执行.shell指令,比较容易实现.那么,关键的一步是获取点击的坐标.对于Andro ...

  9. 智能指针std::unique_ptr

    std::unique_ptr 1.特性 1) 任意时刻只能由一个unique_ptr指向某个对象,指针销毁时,指向的对象也会被删除(通过内置删除器,通过调用析构函数实现删除对象) 2)禁止拷贝和赋值 ...

  10. JMeter写入文件

    之前我们推文讨论过如何使用jmeter读取文件, 比如csv, txt文件读取, 只要配置csv数据文件, 即可非常容易的从文件中读取想要的数据,  但是如果数据已经从API或者DB中获取, 想存放到 ...