react实现简单倒计时

Posted luxiaot

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了react实现简单倒计时相关的知识,希望对你有一定的参考价值。

今天遇到一个简单的小功能,看网上的一些方法感觉不太适合,所以就手敲了一个,直接上代码!!!

 1 import React, { Component } from ‘react‘;
 2 
 3 class NoTimeContent extends Component {
 4     constructor(props) {
 5         super(props)
 6         this.state = {
 7             day: 0,
 8             hour: 0,
 9             minute: 0,
10             second: 0
11         }
12     }
13     render() {
14         return (
15             <NoTimeCon>
16                 <h2>
17                     <span>限时秒杀</span>
18                     <span>{this.state.day}天 {this.state.hour}:{this.state.minute}:{this.state.second}</span>
19                 </h2>
20             </NoTimeCon>
21         )
22     }
23 
24 componentDidMount() {
25       const end = Date.parse(new Date(‘2018-11-29 24:00‘))
26       this.countFun(end);
27     }
28   
29   //卸载组件取消倒计时
30   componentWillUnmount(){
31     clearInterval(this.timer);
32   }
33   
34   countFun = (end) => {
35 
36     let now_time = Date.parse(new Date());
37     var remaining = end - now_time;
38  
39     this.timer = setInterval(() => {
40         //防止出现负数
41       if (remaining > 1000) {
42         remaining -= 1000;
43         let day = Math.floor((remaining / 1000 / 3600) / 24);
44         let hour = Math.floor((remaining / 1000 / 3600) % 24);
45         let minute = Math.floor((remaining / 1000 / 60) % 60);
46         let second = Math.floor(remaining / 1000 % 60);
47 
48         this.setState({
49             day:day,
50             hour:hour < 10 ? "0" + hour : hour,
51             minute:minute < 10 ? "0" + minute : minute,
52             second:second < 10 ? "0" + second : second
53         })
54       } else {
55         clearInterval(this.timer);
56         //倒计时结束时触发父组件的方法
57         //this.props.timeEnd();
58       }
59     }, 1000);
60   }
61 
62 }
63 export default NoTimeContent;

 

以上是关于react实现简单倒计时的主要内容,如果未能解决你的问题,请参考以下文章

react 简单倒计时

react中简单倒计时跳转

python使用上下文对代码片段进行计时,非装饰器

js实现倒计时60秒的简单代码(推荐)

JUC并发编程 共享模式之工具 JUC CountdownLatch(倒计时锁) -- CountdownLatch应用(等待多个线程准备完毕( 可以覆盖上次的打印内)等待多个远程调用结束)(代码片段

react 手写优化实现 antd 倒计时功能组件( 附源码)