Tech Vue/Nuxt.js

Vuetify v-progress-circularでロード中表示をする書き方まとめ

Vuetifyの v-progress-circular コンポーネントは、数値データや処理状況を環状(円状)のデザインで教えてくれるUIデザインです。

ローディングのスピナー(処理中のマーク)としても使用できます。

この記事では基本的な使い方を、コードを示しながらまとめています。

 

基本的な使い方

v-progress-circularは環状(円状)の形を表示するコンポーネントです。

円の中に数値や文字列を入れることもできます。

こんな感じに、ロード中などで回転させておけばロード中であることが一目瞭然です。

進捗状況などを線上に表示する v-progress-linear コンポーネントと使い分けたいところです。

Components Docs

API Docs

 

色やサイズなどの見た目を変える

円の大きさ

円の大きさはsize属性で変更できます。指定しない場合はデフォルトで32が設定されています。

<v-progress-circular
 :value="60"
 :size="17"
></v-progress-circular>

 

以下は :size を17, 30, 60, 90と変化させたときのサンプル。

 

円環の太さ

円環の太さはwidth属性で指定します。指定しない場合はデフォルトで4が設定されています。

<v-progress-circular
  value="60"
  width="8"
></v-progress-circular>

円環の色

円環の色はcolor属性で変更します。

指定できる値は組み込み値、もしくはCSSと同じようにカラーコードを指定します。Vuetifyで使える組み込み設定は「マテリアルカラー」と呼ばれるもので、こちらの公式ドキュメントから探し出せます。

<v-progress-circular
  value="60"
  color="light-blue lighten-1"
></v-progress-circular>

データと表現

無限回転

indeterminate プロパティを設定すると無限に回転するようになります。

<v-progress-circular
  indeterminate
>
</v-progress-circular>

円環の開始点

円の開始角度(塗りの開始点)を指定するにはrotate属性に値を指定します。

角度(0〜360)を指定します。

初期値は0です。

以下のサンプルでは左の円から右の円へvalueを20ずつ増加させています。

rotate="0"

rotate="90"

rotate="180"

ローディング中にスピナーを表示させる

v-progress-circularコンポーネントの使い方として多いのは、何かをロードしている最中に表示させるスピナーではないでしょうか。

 

画像の読込中にスピナーを表示させる

v-img コンポーネントで表示する画像の読込中にスピナーを表示させるには、プレースホルダーとして
v-progress-circular を指定します。

プレースホルダー用の v-slot(v-slot:placeholder)が用意されているのでそれを使います。

<v-img
  src="https://bad.src/not/valid"
  lazy-src="https://picsum.photos/id/1040/200/120?blur"
  aspect-ratio="1"
  class="grey lighten-2"
  max-width="400"
  max-height="220"
>
  <template v-slot:placeholder>
  <v-row
    class="fill-height ma-0"
    align="center"
    justify="center"
  >
    <v-progress-circular indeterminate color="grey lighten-5">
    </v-progress-circular>
  </v-row>
  </template>
</v-img>

以下のサンプルでは、無効な画像URLを指定してあり、無限にプレースホルダーが表示され続けるようになっています。

ちなみにVuetifyではローディング(ロード中)表示のデザインとして、以下のコンポーネントも使えます。

  • v-skeleton-loader(最近流行りの要素全体をもわもわさせる。YouTubeみたいな)
  • v-progress-linear(古き良きプログレスバー。進捗状況が明確な場合に)

 

まとめ

VuetifyのUIコンポーネント v-progress-circularの使い方をまとめました。

数値の表現のひとつとして、またはスピナーとして表示することで視覚的にユーザーフレンドリーなデザインをつくれるでしょう。

  • この記事を書いた人

次世代ペンギン

長いのでペンギンとお呼びください。システム開発・プログラミングのお仕事をしています。甘味とコーヒーは生命線。多くの人に役立つ情報のシェアが目標です。

人気の記事

1

会社員でプログラマーとして働いている人、インフラやネットワークのエンジニアとして働いている人の中には、フリーランスのプログラマーとして独立、もしくは転向したい人もいるので ...

2

キャリアアップのため、または高収入を目指して、しっかりプログラミングを学びたいという人が増えてきましたね。 この記事では現役のエンジニアである私が、実際に仕事で稼げるよう ...

3

フリーランスのプログラマーにとって収入の向上に最も直結するのはスキルです。 必要なスキル、スキルの獲得方法が気になる人も多いでしょう。 また、これからフリーランスを目指す ...

4

Vuetifyの v-progress-circular コンポーネントは、数値データや処理状況を環状(円状)のデザインで教えてくれるUIデザインです。 ローディングのス ...

5

Vuexのstore(ストア)を使うと、各コンポーネント間で個別にデータのやり取りすることなく、データを一元的に管理できます。Vueでは欠かせない機能といえるでしょう。 ...

-Tech, Vue/Nuxt.js