반응: 5분 안에 사용자 지정 진행률 표시줄 구성 요소를 만드는 방법
13806 단어 reactwomenintechwebdevjavascript
며칠 전 매우 인기 있는 UI 라이브러리를 사용하여 React 프로젝트 중 하나를 작업하는 동안 한 가지 문제를 발견했습니다. Progress Bar 구성 요소의 스타일을 변경해야 했습니다. 그러나 몇 시간 동안 그것과 씨름하고 완전한 절망에 빠진 후(문서에 쓰여진 대로 작동하지 않는 이유???) 처음부터 진행률 표시줄 구성 요소를 만들기로 결정했습니다. 여기 내가 어떻게 만들었는지.
1. progress-bar.component.js 파일 생성
import React from "react";
const ProgressBar = (props) => {
const { bgcolor, completed } = props;
return (
<div>
<div>
<span>{`${completed}%`}</span>
</div>
</div>
);
};
export default ProgressBar;
기본적으로 구성 요소는 두 부분으로 구성됩니다.
사용자 지정 진행률 표시줄 구성 요소는 두 개의 소품만 받습니다.
bgcolor - 막대의 완성된 부분의 배경색
완료됨 - 0에서 100 사이의 숫자
2. 스타일링 추가
이 튜토리얼을 위해, 스타일링을 위해 순수 인라인 CSS를 사용하겠습니다. 또 다른 옵션은 styled-components 라이브러리를 사용하는 것이지만 간단하게 유지하겠습니다.
const ProgressBar = (props) => {
const { bgcolor, completed } = props;
const containerStyles = {
height: 20,
width: '100%',
backgroundColor: "#e0e0de",
borderRadius: 50,
margin: 50
}
const fillerStyles = {
height: '100%',
width: `${completed}%`,
backgroundColor: bgcolor,
borderRadius: 'inherit',
textAlign: 'right'
}
const labelStyles = {
padding: 5,
color: 'white',
fontWeight: 'bold'
}
return (
<div style={containerStyles}>
<div style={fillerStyles}>
<span style={labelStyles}>{`${completed}%`}</span>
</div>
</div>
);
};
export default ProgressBar;
멋진 것은 없습니다. 대부분 배경색과 테두리 반경입니다.
우리가 개발한 것을 테스트해 봅시다.
import React from "react";
import "./App.css";
import ProgressBar from "./progress-bar.component";
const testData = [
{ bgcolor: "#6a1b9a", completed: 60 },
{ bgcolor: "#00695c", completed: 30 },
{ bgcolor: "#ef6c00", completed: 53 },
];
function App() {
return (
<div className="App">
{testData.map((item, idx) => (
<ProgressBar key={idx} bgcolor={item.bgcolor} completed={item.completed} />
))}
</div>
);
}
export default App;
앱을 실행하고 브라우저에 무엇이 있는지 확인합니다.
그리고 그게 다야! 간단한 Progress Bar React 컴포넌트가 준비되었습니다!
보너스. 애니메이션을 추가합니다.
실제로 진행률 표시줄 이동을 애니메이션으로 표시하려면 필러 스타일에 한 줄만 추가하면 됩니다.
const fillerStyles = {
...
transition: 'width 1s ease-in-out',
...
}
실제 애니메이션을 시연하기 위해 2초마다 완성된 소품 값을 무작위로 생성하는 함수를 만들 것입니다. 이 함수는 useEffect 후크 안에 배치됩니다.
function App() {
const [completed, setCompleted] = useState(0);
useEffect(() => {
setInterval(() => setCompleted(Math.floor(Math.random() * 100) + 1), 2000);
}, []);
return (
<div className="App">
<ProgressBar bgcolor={"#6a1b9a"} completed={completed} />
</div>
);
}
이것이 최종 결과입니다.
결론
그리고 그게 다야! 이 짧은 블로그 게시물에서는 맞춤 진행률 표시줄 React 구성 요소를 만드는 단계별 프로세스를 설명했습니다. 이 구성 요소는 완전히 사용자 정의할 수 있으므로 프로젝트 요구 사항에 따라 스타일과 기능을 추가할 수 있습니다.
구성 요소의 전체 소스 코드는 this GitHub repository에서 사용할 수 있습니다.
또한 이 구성 요소(TypeScript 지원 포함)를 npm package 로 사용할 수 있습니다.
Reference
이 문제에 관하여(반응: 5분 안에 사용자 지정 진행률 표시줄 구성 요소를 만드는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://dev.to/ramonak/react-how-to-create-a-custom-progress-bar-component-in-5-minutes-2lcl
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(반응: 5분 안에 사용자 지정 진행률 표시줄 구성 요소를 만드는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/ramonak/react-how-to-create-a-custom-progress-bar-component-in-5-minutes-2lcl텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)