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;

原文地址:https://www.cnblogs.com/luxiaot/p/10010149.html

时间: 2024-07-31 07:28:01

react实现简单倒计时的相关文章

React Hooks简单业务场景实战(非源码解读)

前言 React Hooks 是React 16.7.0-alpha 版本推出的新特性.从 16.8.0 开始,React更稳定的支持了这一新特性. 它可以让你在不编写 class 的情况下使用 state 以及其他的 React 特性. 注意:React 16.8.0 是第一个支持 Hook 的版本.升级时,请注意更新所有的 package,包括 React DOM.React Native 将在下一个稳定版本中支持 Hook. 如果说promise是JavaScript异步的终极解决方案,那

jQuery简单倒计时插件

1. 按照特定的类结构布局. 2. 需要先引入jQuery,再引入此文件. /** * 简单倒计时 * * 支持页面内同时存在多个计时器并且不互相干扰 * * Usage: * * <div class="timer-simple-seconds" timer="3600"> * <span class="hour">hour</span>小时<span class="minute"&

node.js学习之webpack打包react最简单用法

研究一天多也没弄出来个毛,今天早上来到随便一试,嘿,结果成了.最简洁最简单的使用方法,记录下来. 首先,安装webpack命令: $ npm install webpack -g 全局安装,可以在cmd中使用webpack命令. 然后创建一个项目,项目名称webpack,我这里用的是webstorm11.创建成功之后cmd进入项目根目录,执行命令: $ npm init 这个命令会创建一个package.json的文件,是整个项目的配置文件,添加上webpack的依赖包: "devDepende

React Router简单Demo

简介 react router是使用react的时候首选的一个路由工具. 安装 react router包含react-router,react-router-dom和react-router-native这三个包,分别是路由核心组件和浏览器端组件和native端组件,所以我们需要安装react-router-dom npm install --save react-router-dom 安装后就可以直接使用了 https://codepen.io/pshrmn/pen/YZXZqM?edito

JS实现简单倒计时

/*倒计时*/ var downTime = function (endTime,obj,callback){ /*基本判断*/ if(!endTime || typeof endTime !== "string") return false; /*基本判断*/ if(!obj || typeof obj !== "object") return false; /*获取日期的毫秒*/ var endTime = Date.parse(endTime); /*定时器*

js 简单倒计时插件和使用方法

// 倒计时插件 (function (){ function countdown(config){ var startDate = config.start ? new Date(config.start) : new Date(); var endDate = new Date(config.end); var id = config.id || 'countdown'; var time = (endDate - startDate)/1000; if(time < 0){ if(conf

[ActionScript 3.0] 简单倒计时

1 import flash.utils.Timer; 2 import flash.events.TimerEvent; 3 import flash.text.TextField; 4 5 var text:TextField = new TextField(); 6 var endTime:Date = new Date(2015,7-1,29,15,30,0); 7 var timer:Timer = new Timer(1000); 8 text.autoSize = "left&qu

react实现简单表格过滤组件

1.index.html <!DOCTYPE html> <html> <head> <style> input{ border:5px solid #b5dad7; height:50px; width:452px; text-align:center; } td{ border:1px solid grey; width:150px; height:40px; text-align:center; } th{ border:1px solid grey;

React 组件简单演示

组件分为函数式组件和类组件 函数式组件: 类组件 如果我们需要向组件传递参数,可以使用 this.props 对象 函数式组件使用props.属性名 类组件使用this.props.属性名 import React, { Component } from 'react'; import ReactDOM from 'react-dom'; import './index.css'; import App from './App'; import * as serviceWorker from '