react 大冒险-setTimeout setInterval in react -day 24

今天来说明如何在 react 内执行 setTimeout 跟 setInterval

复习概念,在 react 的生命周期中提到,`componentDidMount 是写 timer 的好地方
react 大冒险-Lifecycle method-day 19

开启一个 Timer.js
对 state 初始化,设定 初始秒数 initTime = 0

在 componentDidMount 时设定 timeId
incrementTime 将 state.initTime 逐次+1

import React, { Component } from "react";
class Timer extends Component {
	constructor(props) {
		super(props);
		this.state = {
			initTime: 0,
		};
		this.incrementTime = this.incrementTime.bind(this);
		this.stopCounting = this.stopCounting.bind(this);
	}
	// componentDidMount 是设定timer的好地方
	componentDidMount() {
		this.timeId = setInterval(() => {
			this.incrementTime();
		}, 1000);
	}
	incrementTime() {
		this.setState({ initTime: this.state.initTime + 1 });
	}
	stopCounting() {
		clearInterval(this.timeId);
	}

	render() {
		const { initTime } = this.state;
		return (
			<>
				<button onClick={this.stopCounting}>stop counting</button>
				<p>passed {initTime} seconds</p>
			</>
		);
	}
}

export default Timer;

这时候就可以看到随时间经过,画面便会产生变化


<<:  [Day28] grid-row / grid-column + grid-area

>>:  Nice day 28 (iphone10s 功能挖掘)-常用资料选择器

使用PPT写代码开发弹幕射击游戏

制作了一个使用PPT开发游戏的教学影片 Part 1: https://www.youtube.c...

Day 08 - Spring Boot 常用注释(上)

注释基本概念 注释(Annotations) 是Java 5.0 加入的新功能,它强化了程序注解与J...

DAY09随机森林演算法(回归方法)

昨天,我们已建立完随机森林,那今天,我打算使用回归方法去看他得出来结果,所以会跟基尼系数预测类别方法...

DAY4 [程序设计基本介绍]

第四天给大家科普一些基本知识。 程序(program)是一种指令集合可以让电脑完成你指定的工作,但必...

Day 13. Zabbix 图表视觉化查看

如果自己架完有稍微玩过,点出图表并不是太难。今天跟大家介绍完整呈现机器所有的报表,可以垂直的在同个时...