📜  react js中的倒计时 - Javascript(1)

📅  最后修改于: 2023-12-03 15:34:38.389000             🧑  作者: Mango

React JS中的倒计时

在使用React JS编写项目时,经常需要实现倒计时功能。React JS提供了一些内置的方法和组件来实现倒计时功能。在本篇文章中,我们将介绍如何使用React JS实现倒计时功能。

前置条件

在介绍如何实现倒计时功能之前,需要确保已经安装好了React JS。如果尚未安装,可以参考React JS官方文档进行安装。

倒计时组件

倒计时组件是实现倒计时功能的核心组件。下面是一个基本的倒计时组件示例。

import React, { useState, useEffect } from 'react';

const Countdown = ({ minutes, seconds }) => {
  const [timeRemaining, setTimeRemaining] = useState(minutes * 60 + seconds);

  useEffect(() => {
    const timer =
      timeRemaining > 0 &&
      setInterval(() => setTimeRemaining(timeRemaining - 1), 1000);

    return () => clearInterval(timer);
  }, [timeRemaining]);

  const minutesRemaining = Math.floor(timeRemaining / 60);
  const secondsRemaining = timeRemaining % 60;

  return (
    <div>
      {minutesRemaining.toString().padStart(2, '0')}:
      {secondsRemaining.toString().padStart(2, '0')}
    </div>
  );
};

export default Countdown;
组件说明

该组件接受两个数字作为参数:分钟秒钟。倒计时组件会自动计算出总共需要倒计时的秒数,并且从该值开始倒计时。在倒计时结束前,每隔1秒钟调用一次setTimeRemaining函数,更新当前的倒计时时间。当倒计时时间到达0时,会清除定时器并停止倒计时。

组件用法

使用该组件非常简单,只需要在需要倒计时的地方引入该组件,并传递分钟和秒钟参数即可。

import Countdown from './Countdown';

function App() {
  return <Countdown minutes={10} seconds={30} />;
}
示例应用

下面是一个基于React JS的进阶示例应用,该应用演示了如何在React JS中实现倒计时功能。该应用包括一个简单的表单,用户可以在表单中输入倒计时时间。在用户输入了倒计时时间并点击开始按钮之后,应用会开始倒计时。在倒计时结束后,应用会显示一个提示信息。

import React, { useState } from 'react';
import Countdown from './Countdown';

const App = () => {
  const [minutes, setMinutes] = useState(0);
  const [seconds, setSeconds] = useState(0);
  const [showCountdown, setShowCountdown] = useState(false);

  const handleStartClick = () => {
    setShowCountdown(true);
  };

  const handleResetClick = () => {
    setShowCountdown(false);
    setMinutes(0);
    setSeconds(0);
  };

  return (
    <div>
      {!showCountdown && (
        <form>
          <label>
            Minutes:
            <input
              type="number"
              value={minutes}
              onChange={(e) => setMinutes(parseInt(e.target.value))}
            />
          </label>
          <br />
          <label>
            Seconds:
            <input
              type="number"
              value={seconds}
              onChange={(e) => setSeconds(parseInt(e.target.value))}
            />
          </label>
          <br />
          <button type="button" onClick={handleStartClick}>
            Start
          </button>
        </form>
      )}
      {showCountdown && (
        <div>
          <Countdown minutes={minutes} seconds={seconds} />
          <button type="button" onClick={handleResetClick}>
            Reset
          </button>
        </div>
      )}
      {showCountdown && minutes === 0 && seconds === 0 && (
        <div>Time's up!</div>
      )}
    </div>
  );
};

export default App;
应用说明

该应用包括以下组件:

  • 一个表单,用于输入倒计时时间
  • 一个“开始”按钮,用于开始倒计时
  • 一个倒计时组件
  • 一个“重置”按钮,用于重置倒计时
  • 一个提示信息,用于在倒计时结束时提示用户

用户可以在表单中输入需要倒计时的时间(分钟和秒钟),然后点击“开始”按钮。该应用会根据用户输入的时间计算出需要倒计时的秒数,并启动倒计时。在倒计时结束后,该应用会显示一个提示信息,并提供一个“重置”按钮,用于重新开始倒计时。

结论

React JS提供了一些内置的方法和组件,可以轻松实现倒计时功能。使用React JS编写倒计时应用非常简单,只需几行代码即可实现。希望这篇文章对你有所帮助,如果你有任何问题或建议,请在下面的评论区留言。