React.js ライブラリ「react-customizable-progressbar」を使って円形のSVGプログレスバーを実装する

React.js ライブラリ「react-customizable-progressbar」を使って円形のSVGプログレスバーを実装する

ライブラリ「react-customizable-progressbar」をインストールすると、本をめくるようなエフェクトをかけることが可能です。ここでは、react.jsでreact-customizable-progressbarを利用するための手順と簡単な使い方を記述してます。

環境

  • OS  CentOS Linux release 8.0.1905 (Core)
  • node V12.13.1
  • npm 6.14.2
  • React 16.13.0

react.js環境構築

下記のコマンドで構築してます。ここでは、react-appという名前でプロジェクトを作成してます。

create-react-app react-app

react-customizable-progressbarインストール

作成したプロジェクトに移動して、インストールします。

## 作成したプロジェクトに移動
cd react-app
 
## インストール
npm install react-customizable-progressbar

react-customizable-progressbar使い方

srcディレクトリにsample.jsと名前で下記のコードを記述します。

import React from 'react';
import ProgressBar from 'react-customizable-progressbar';

const Sample = () => {  
  return (    
    <div>
      <ProgressBar
        radius={100}
        progress={75}
        strokeWidth={18}
        strokeColor="#a0d468"
        strokeLinecap="round"
        trackStrokeWidth={18}
        counterClockwise
      >
      <div className="indicator">
          <div>75%</div>
      </div>
      </ProgressBar>
      <ProgressBar
            radius={100}
            progress={75}
            fillColor="#f2f2f2"
            strokeWidth={2}
            strokeColor="#656d78"
            trackStrokeWidth={2}
            pointerRadius={12}
            pointerStrokeWidth={2}
            pointerStrokeColor="#656d78"
            inverse
        >
          <div className="indicator">
              <div>75%</div>
          </div>
      </ProgressBar>
    </div>
  );
}

export default Sample;

次に、srcディレクトリ配下にあるApp.jsを下記のように編集します。

import React from 'react';
import Sample from './sample';
import './App.css';

function App() {
  const style = {
    width: "50%",
    margin: "0 auto",
    marginTop: 150,
  };
  return (
    <div className="App">
      <div style={style}>
        <Sample />
      </div>
    </div>
  );
}

export default App;

実行します。

npm start

ブラウザから http://プライベートIP:3000にアクセスすると、 円形のSVGプログレスバーが実装されていることが確認できます。