2018年4月25日
プログラミング
Reactでプログレスサークル、react-circle【今日のGitHubトレンド】


はじめに
GitHubのトレンドリポジトリを定期的にご紹介するシリーズです。
今回はReactでリッチなSVG形式のプログレスサークルを実現できる、react-circleをご紹介します。
イメージが湧きづらいと思うので、公式にあるGifをご覧ください。

react-circleの使い方
react-circleのデモはこちらをご覧ください。
react-circleを導入する
Reactのプロジェクトにreact-circleを導入していきます。
yarn add react-circle
もしくは
npm install --save react-circle
でreact-circleをインストールしましょう。
使い方
公式のサンプルコードです。
import Circle from 'react-circle';
<Circle
progress={35}
/>
react-circleからCicleコンポーネントをインポートします。
そしてCircleのpropsとしてprogress(進捗%)を与えてあげることで、プログレスサークルを実装できます。
propsのご紹介
では、react-circleで使えるpropsを公式からご紹介します。
animate={true} // アニメーションをつけるかどうか
responsive={true} // SVGをレスポンシブにするかどうか
size={150} // 円の大きさ
lineWidth={14} // 円の線の太さ
progress={69} // 進捗(%)
progressColor="cornflowerblue" 進捗部分の色
bgColor="whitesmoke" //円の進捗部分以外の色
textColor="hotpink" //テキスト部分の色
textStyle={{
font: 'bold 5rem Helvetica, Arial, sans-serif' // テキスト部分のスタイル
}}
percentSpacing={10} // %と数値部分の余白
roundedStroke={true} // 円の進捗部分に丸みをもたせるかどうか
showPercentage={true} // 進捗数値部分を表示させるかどうか
showPercentageSymbol={true} // 進捗の%部分を表示させるかどうか
その他のプログレスサークル系のライブラリ
最後に、他のライブラリをご紹介します。
react-circular-progressbar
柔らかいアニメーションや描画の種類も多いので、使いやすいライブラリです。
progress

プログレスバーも実装することができ、こちらも人気のライブラリです。
react-progress-circle

スター数やメンテナンスの頻度からも、あまり採用すべきでないかもしれません。
まとめ
簡単に実装することができ、自然なアニメーションも可能なreact-circleをご紹介しました。
また、他のライブラリもいくつかご紹介しましたが、ポイントとしてメンテナンスが確実にされているか(頻度や最終更新日付)を気にするようにしましょう。
そしてreact-circleのメインロジックも、実は100行未満です。
極力導入するライブラリはソースも見ていくようにして、気になる点があればプルリクエストを躊躇せず上げていくことで、ライブラリ関係のトラブルを少なくできるようになります!
Reactのお仕事に関するご相談
Bageleeの運営会社、palanではReactに関するお仕事のご相談を無料で承っております。
zoomなどのオンラインミーティング、お電話、貴社への訪問、いずれも可能です。
ぜひお気軽にご相談ください。
この記事は
参考になりましたか?
0
0
関連記事

2022年5月13日
Reactでオセロゲームを作る

2021年4月9日
Slack OAuth x React で Slack ユーザー認証を作ってみた!

2021年3月1日
Reactで使えるバリデーションライブラリを紹介!

2021年2月22日
Hasura Cloud × Auth0 × React でお手軽にTodoアプリを作ってみた!

2020年12月12日
Blitz.jsとTailwind CSSでメモ帳アプリの作成【第2弾】

2020年12月8日
コンポーネントを実装するときに意識すること
簡単に自分で作れるWebAR
「palanAR」はオンラインで簡単に作れるWebAR作成ツールです。WebARとはアプリを使用せずに、Webサイト上でARを体験できる新しい技術です。
palanARへ









