如何在 ReactJS 中使用 CircularProgress 组件?


圆形进度条是任何应用程序中一个具有吸引力的 UI 元素。当我们的应用程序从服务器获取数据、用户上传文件或下载数据时,我们可以显示圆形加载指示器。

在这里,我们将学习使用各种库创建圆形进度条的不同方法。

使用 React-circular-progressbar NPM 包

react-circular-progressbar 是一个 NPM 包,我们可以导入 `circularProgressbar` 组件。它接受 `value` 作为属性来显示圆形进度。

用户应该在终端中执行以下命令,以在 React 应用程序中安装 react-circular-progressbar NPM 包。

npm i react-circular-progressbar

语法

用户可以按照以下语法使用 react-circular-progressbar 库的 `CircularProgressbar` 组件。

<CircularProgressbar value = {40} />;

示例

在下面的示例中,我们将学习如何使用 CircularProgressbar 组件创建一个主要的圆形加载指示器。此外,我们还导入了来自 `react-circular-progressbar` 库的样式。

import React from "react";

import { CircularProgressbar } from "react-circular-progressbar";
import "react-circular-progressbar/dist/styles.css";

function App() {
   return (
      <div>
         <div style = {{ width: "200px" }}>
            <CircularProgressbar value = {40} text = {`${40}%`} />
         </div>
      </div>
   );
}

export default App;

输出

在输出中,用户可以看到完成 40% 的圆形进度组件。

示例

下面的示例将通过在 `CircularProgressBar` 组件中传递属性来自定义圆形进度条。我们将 `maxValue` 设置为 10。因此,这里的 1 表示 10%,2 表示 20%,依此类推。

此外,它显示进度是逆时针方向的。此外,我们还增加了描边宽度和背景填充。如果用户需要,他们也可以添加自定义 CSS 作为 `styles` 属性的值。

import React from "react";

import { CircularProgressbar } from "react-circular-progressbar";
import "react-circular-progressbar/dist/styles.css";

function App() {
   return (
      <div>
         <div style = {{ width: "200px" }}>
            <CircularProgressbar
               maxValue = {10}
               strokeWidth = {12}
               value = {6}
               counterClockwise = {true}
               background = {true}
               backgroundPadding = {10}
               text = {`${60}%`}
            />
         </div>
      </div>
   );
}

export default App;

输出

使用 Material UI 库创建圆形进度

Materia Ui 库包含具有不同变体的 CircularProgress 组件。此外,我们还可以使用 Material UI 创建动画圆形进度条。

用户应该执行以下命令来安装 Material UI。

npm install @mui/material @emotion/react @emotion/styled

语法

用户应该按照以下语法使用 Material UI 库的 CircularProgress 组件。

<CircularProgress />

示例

在下面的示例中,我们从 Material UI 导入了 `CircularProgress` 组件,并在 App 组件中使用它。在输出中,用户可以看到它显示了动画圆形进度条。

import React from "react";
import CircularProgress from "@mui/material/CircularProgress";

function App() {
   return (
      <div>
         <div style = {{ width: "300px", marginLeft: 30 }}>
            <CircularProgress />
         </div>
      </div>
   );
}

export default App;

输出

示例

在下面的示例中,我们使用了 `setInterval()` 方法,每 500 毫秒将 `progress` 状态的值更改 5。

import React from "react";
import CircularProgress from "@mui/material/CircularProgress";

function App() {
   const [currentProgress, setProgress] = React.useState(0);
   React.useEffect(() => {
      const timerId = setInterval(() => {
         setProgress((prevProgress) =>
            prevProgress >= 100 ? 0 : prevProgress + 5
         );
      }, 500);
      return () => {
         clearInterval(timerId);
      };
   }, []);
   return (
      <div>
         <div style = {{ width: "300px", marginLeft: 30 }}>
            <CircularProgress variant = "determinate" value = {currentProgress} />
         </div>
      </div>
   );
}

export default App;

输出

在输出中,用户可以看到圆形进度每秒更新 10,一旦达到 100,它就会重置为 0。

用户学习了如何在 React 应用程序中添加圆形进度条。我们使用了两个不同的库来创建圆形进度条。此外,我们还可以使用上述库在圆形进度条中显示标签。

更新于:2023年4月6日

2K+ 次浏览

启动您的 职业生涯

通过完成课程获得认证

开始学习
广告