欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

基于React和antd實現(xiàn)自定義進(jìn)度條的示例代碼

 更新時間:2025年03月26日 09:21:23   作者:五號廠房  
在現(xiàn)代 Web 開發(fā)中,進(jìn)度條是一種常見且實用的 UI 組件,用于直觀地向用戶展示任務(wù)的完成進(jìn)度,本文將詳細(xì)介紹如何使用 React 來構(gòu)建一個自定義的進(jìn)度條,它不僅能夠動態(tài)展示進(jìn)度,還具備額外的信息提示功能,需要的朋友可以參考下

一、技術(shù)選型與準(zhǔn)備

我們選用了廣受歡迎的 React 框架作為核心開發(fā)工具,它提供了高效的組件化開發(fā)模式,讓代碼的組織與維護(hù)變得更加便捷。同時,為了實現(xiàn)一些精致的交互效果,引入了 Ant Design(簡稱 antd)庫中的 Tooltip 組件。Ant Design 是一套成熟的企業(yè)級 UI 設(shè)計語言和 React 組件庫,能夠助力我們快速搭建出美觀且功能強(qiáng)大的界面。

二、組件的核心邏輯

(一)狀態(tài)管理

首先,定義一個名為 BasedOnReactSelfDefinedProgressBar 的函數(shù)式 React 組件:

import React, { useState, useEffect } from "react";
import { Tooltip } from "antd";

const BasedOnReactSelfDefinedProgressBar: React.FC = () => {
  const [progressData, setProgressData] = useState([
    { percent: 10, color: "red" },
    { percent: 10, color: "green" },
    { percent: 10, color: "red" },
    { percent: 10, color: "green" },
    { percent: 10, color: "green" },
  ]);

在這里,通過 useState 鉤子函數(shù)初始化了一個名為 progressData 的狀態(tài)變量,它存儲著進(jìn)度條的關(guān)鍵信息。這個狀態(tài)是一個數(shù)組,數(shù)組中的每個元素都是一個對象,包含 percent(表示當(dāng)前片段的進(jìn)度占比)和 color(用于區(qū)分不同類型,在后續(xù)示例中與巖石類型相關(guān)聯(lián),紅色代表火成巖,綠色代表沉積巖)兩個屬性。初始狀態(tài)下,設(shè)定了各個片段具有相同的起始占比 10%。

(二)動態(tài)更新機(jī)制

為了讓進(jìn)度條能夠自動推進(jìn),使用 useEffect 鉤子函數(shù)來處理副作用:

  useEffect(() => {
    const interval = setInterval(() => {
      setProgressData(prev => 
        prev.map(item => ({
         ...item,
          percent: Math.min(prev.reduce((sum, cur) => sum + cur.percent, 0) + 10, 100)
        }))
      );
    }, 1000);
    return () => clearInterval(interval);
  }, []);

當(dāng)組件掛載時,創(chuàng)建一個定時器(setInterval),每隔 1 秒鐘觸發(fā)一次更新操作。在更新函數(shù)中,通過獲取前一狀態(tài) prev,對 progressData 數(shù)組中的每個元素進(jìn)行處理。新的 percent 值是將當(dāng)前所有元素的 percent 之和加上 10,但使用 Math.min 確保最終結(jié)果不超過 100%,以符合進(jìn)度條的實際意義。同時,為了避免內(nèi)存泄漏,在組件卸載時,通過返回的清除函數(shù) clearInterval(interval) 及時關(guān)閉定時器。

三、組件的渲染呈現(xiàn)

  return (
    <div
      style={{
        width: "100%",
        height: "10px",
        background: "#e0e0e0",
        position: "relative",
        borderRadius: "10px",
        overflow: "hidden"
      }}
    >
      {progressData.map((item, index) => (
        <Tooltip 
          key={index} 
          title={`巖石類型: ${item.color === 'red'? '火成巖' : '沉積巖'}\n占比: ${item.percent}%`}
        >
          <div
            style={{
              width: `${100 / progressData.length}%`,
              height: "100%",
              background: item.color,
              position: "absolute",
              left: `${(100 / progressData.length) * index}%`,
              borderRadius: '5px',
              transition: 'width 0.3s ease'
            }}
          />
        </Tooltip>
      ))}
    </div>
  );
};

export default BasedOnReactSelfDefinedProgressBar;

顯示效果:

綜上所述,通過以上步驟,利用 React 結(jié)合 antd 的 Tooltip 組件,成功構(gòu)建了一個既具備動態(tài)進(jìn)度更新功能,又擁有豐富信息提示的自定義進(jìn)度條。在實際項目中,可根據(jù)具體需求進(jìn)一步拓展其功能,比如添加更多的進(jìn)度條樣式、響應(yīng)不同的交互事件等,使其更好地服務(wù)于各類業(yè)務(wù)場景。

以上就是基于React和antd實現(xiàn)自定義進(jìn)度條的示例代碼的詳細(xì)內(nèi)容,更多關(guān)于React antd自定義進(jìn)度條的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • React實現(xiàn)動態(tài)調(diào)用的彈框組件

    React實現(xiàn)動態(tài)調(diào)用的彈框組件

    這篇文章主要為大家詳細(xì)介紹了React實現(xiàn)動態(tài)調(diào)用的彈框組件,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-08-08
  • react redux入門示例

    react redux入門示例

    本篇文章主要介紹了react redux入門示例,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-04-04
  • 詳解react應(yīng)用中的DOM DIFF算法

    詳解react應(yīng)用中的DOM DIFF算法

    這篇文章主要介紹了react應(yīng)用中的DOM DIFF算法,幫助大家更好的理解和學(xué)習(xí)使用react,感興趣的朋友可以了解下
    2021-04-04
  • React實現(xiàn)前端選區(qū)的示例代碼

    React實現(xiàn)前端選區(qū)的示例代碼

    本文主要介紹了React實現(xiàn)前端選區(qū)的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-05-05
  • 使用Node搭建reactSSR服務(wù)端渲染架構(gòu)

    使用Node搭建reactSSR服務(wù)端渲染架構(gòu)

    這篇文章主要介紹了使用Node搭建reactSSR服務(wù)端渲染架構(gòu),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-08-08
  • 教你在react中創(chuàng)建自定義hooks

    教你在react中創(chuàng)建自定義hooks

    簡單來說就是使用自定義hook可以將某些組件邏輯提取到可重用的函數(shù)中。 自定義hook是一個從use開始的調(diào)用其他hook的Javascript函數(shù),下面看下react中創(chuàng)建自定義hooks的相關(guān)知識,感興趣的朋友一起看看吧
    2021-11-11
  • react實現(xiàn)菜單權(quán)限控制的方法

    react實現(xiàn)菜單權(quán)限控制的方法

    本篇文章主要介紹了react實現(xiàn)菜單權(quán)限控制的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-12-12
  • React源碼分析之useCallback與useMemo及useContext詳解

    React源碼分析之useCallback與useMemo及useContext詳解

    這篇文章主要介紹了React useCallback與useMemo及useContext源碼分析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧
    2022-11-11
  • JS中使用react-tooltip插件實現(xiàn)鼠標(biāo)懸浮顯示框

    JS中使用react-tooltip插件實現(xiàn)鼠標(biāo)懸浮顯示框

    前段時間遇到的一個需求,要求鼠標(biāo)懸停顯示使用描述, 用到了react-tooltip插件,今天寫一個總結(jié),感興趣的朋友跟隨小編一起看看吧
    2019-05-05
  • 一文搞懂redux在react中的初步用法

    一文搞懂redux在react中的初步用法

    Redux是JavaScript狀態(tài)容器,提供可預(yù)測化的狀態(tài)管理,今天通過本文給大家分享redux在react中使用及配置redux到react項目中的方法,感興趣的朋友跟隨小編一起看看吧
    2021-06-06

最新評論