此处我主要用了Material-UI组件库

安装

yarn add @mui/material @emotion/react @emotion/styled

实现

import React, { useRef } from "react"
import Button from "@mui/material/Button"
import Box from "@mui/material/Box"
import Divider from "@mui/material/Divider"
import Chip from "@mui/material/Chip"export default function Time() {const [startTime, setStartTime] = useState(null)const [now, setNow] = useState(null)const refs = useRef(null)var secondsPassed = 0if (startTime != null && now != null) {secondsPassed = (now - startTime) / 1000}function handleStart() {setStartTime(Date.now())setNow(Date.now())clearInterval(refs.current)refs.current = setInterval(() => {setNow(Date.now())}, 10)}function handleStop() {clearInterval(refs.current)}return (<div><Divider><Chip label="useRef" /></Divider><Box sx={{ width: "500px", marginTop: "10px", marginBottom: "10px" }}><h1>Time:{secondsPassed.toFixed(3)}</h1><Button variant="outlined" color="success" onClick={handleStart}>start</Button><Button variant="outlined" color="error" onClick={handleStop}>stop</Button></Box></div>)
}

React 实现计时器相关推荐

  1. React Native 后台执行计时器react-native-background-timer

    在开发的过程中,定时执行代码很常用,但是有个问题是,只要手机APP切到后台运行代码就停止执行了.最近在开发一款音乐播放器APP,想实现定时"停止播放"功能,就需要用到后台也可以定时 ...

  2. Taro(React)实现具有滚动效果的倒数计时器

    Taro(React)实现具有滚动效果的倒数计时器 Taro获取节点方法的封装 import Taro from "@tarojs/taro"; import { NodesRef ...

  3. React入门学习小案例之番茄计时器与温度控制 App

    番茄计时器 首先搭建工程 npx create-react-app demoname 在 src 目录下新建 components ,新建一个 Timer.js,Timer.css Timer.js ...

  4. React State和生命周期 3

    微信小程序开发交流qq群   173683895    承接微信小程序开发.扫码加微信. 一:组件的生命周期 组件的生命周期可分成三个状态: 安装:已插入真实DOM 更新:正在被重新渲染 卸载:已移出 ...

  5. React文档 state and lifecycle

    状态和生命周期 这篇介绍 React 组件中状态和声明周期的概念.详情可以查看API参考 . 思考前一部分中时钟的例子.渲染元素中,我们仅学习了一种更新 UI 的方式.调用 ReactDOM.rend ...

  6. 构建一个react项目_您想要了解更多有关React的内容吗? 让我们构建一个游戏,然后玩。...

    构建一个react项目 by Samer Buna 通过Samer Buna 您想要了解更多有关React的内容吗? 让我们构建一个游戏,然后玩. (Do you want to learn more ...

  7. react前端开发_是的,React正在接管前端开发。 问题是为什么。

    react前端开发 by Samer Buna 通过Samer Buna 是的,React正在接管前端开发. 问题是为什么. (Yes, React is taking over front-end ...

  8. 【React系列】状态(State)和生命周期

    在上一篇中写过,组件可以分为函数式组件和类组件,并且更新组件的方法也给出了通过传入ReactDOM.render()方法进行更新.但是这种方式并不能很好地进行封装成独立功能的组件,一些操作会由外部进行 ...

  9. 【全栈React】第6天: 状态

    本文转载自:众成翻译 译者:iOSDevLog 链接:http://www.zcfy.cc/article/3824 原文:https://www.fullstackreact.com/30-days ...

最新文章

  1. libopencv_core.so.2.4: cannot open shared object file: Depends: libopencv-photo2.4v5
  2. 浏览器市场占有率_分水岭初现 全球浏览器市场现状及竞争格局分析
  3. Discuz常见小问题-如何快速清除帖子
  4. 用python计算2+4+6+…+20的值_计算2*3+(2*(5+6)*3)/2+4*6的值
  5. python项目如何打开_python如何打开_linux如何打开python_python程序打开 - 云+社区 - 腾讯云...
  6. ajax async
  7. solidity智能合约[7]-整型与运算
  8. 【Oracle】Python 连接Oracle 数据库
  9. 梯度下降法-深度AI
  10. android编译的tool版本有多少,android gradle tool版本从3.3升级到3.6.3问题记录
  11. 问题 K: Sequence Problem (III) : Array Practice
  12. bzoj 2655: calc [容斥原理 伯努利数]
  13. jmeter获取毫秒时间戳
  14. lottie动画效果使用简例
  15. 国内 OA 办公自动化系统 现状
  16. 【Git】Failed to connect to github.com port 443 after 21092 ms: Connection refused
  17. 抖音seo排名优化技术工具源代码
  18. Typora使用简介与插入数学公式
  19. 工程经济—技术方案不确定性分析
  20. STM32F103_study54_The punctual atoms(STM32 There have always been questions about learning STM32)

热门文章

  1. 第二十章 SQL谓词 %STARTSWITH(二)
  2. HTML——我们学习过的标签有哪些?
  3. uva 12553 Countdown (搜索+剪枝)
  4. netty入门前置知识-NIO
  5. 编程入门到逆向学习顺序
  6. centos下cmake安装caffe
  7. 【QT】QSting类型16进制数据转二进制
  8. RegexBuddy 正则表达式辅助工具使用指南
  9. android o适配foregroundService和notification
  10. 统计学⑤——假设验证