導入しやすいローディングオーバーレイ「vue-loading-overlay」の使い方

2019年10月9日

導入しやすいローディングオーバーレイ「vue-loading-overlay」の使い方

vue-loading-overlayとは

vue-loading-overlayは、ローディングオーバーレイを実装できるコンポーネントライブラリです。
実装方法が、わかり易く、非常に容易な点が優れています。

 

導入しやすいローディングオーバーレイ「vue-loading-overlay」の使い方

 

インストール

以下のnpmyarnCDNを使ってインストールします。

npm

npm install vue-loading-overlay

yarn

yarn add vue-loading-overlay

CDN

<script src="https://cdn.jsdelivr.net/npm/vue-loading-overlay@3"></script>
<link href="https://cdn.jsdelivr.net/npm/vue-loading-overlay@3/dist/vue-loading.css" rel="stylesheet">

 

gitリポジトリは以下から取得できます。

https://github.com/ankurk91/vue-loading-overlay

 

導入手順

1. ライブラリの取り込み

(1)webpack等の場合 ※モジュール版は未検証です。

import Loading from 'vue-loading-overlay';
import 'vue-loading-overlay/dist/vue-loading.css';

(2)WEBページの場合

const Loading = window.VueLoading;

2.メソッドを設定

components に上記で取得した Loading を読み込ませます。

doAjax で isLoading データのboolを変更して、ローディングの表示非表示を制御します。

let app = new Vue({
  el: '#app',
  data: {
    isLoading: false,
    fullPage: true
  },
  components: {
    "loading":Loading
  },
  methods: {
    doAjax:function() {
      let self = this;    
      self.isLoading = true;
      // simulate AJAX
      setTimeout(function(){
        self.isLoading = false;
        console.log('load off');
      }, 1000);
    },
    onCancel:function() {
      console.log('User cancelled the loader.')
    }
  }
});

3. テンプレートを準備

loadingタグがローディングのコンポーネントになります。

button をクリックすることで doAjax を起動します。

<div id="app">
  <loading 
    :active.sync="isLoading" 
    :can-cancel="true" 
    :on-cancel="onCancel"
    :is-full-page="fullPage"></loading>
  <label><input type="checkbox" v-model="fullPage">Full page?</label>
  <button @click.prevent="doAjax">fetch Data</button>
</div>

サンプル

>>専用ページで確認する

 

さいごに

ローディングオーバーレイを実装できるコンポーネントライブラリでした。

なかなか汎用性が高く、学習コストも少なめなライブラリです。
管理人的には、今後実務で利用する機会は増えそうな気がします。

これでGithubスターが500にも満たないとは・・・
今後伸びそうな気がします。

今日はこの辺でー

 

  • この記事を書いた人

カバノキ

印刷会社のWEB部隊に所属してます。 WEB制作に携わってから、もう時期10年になります。 普段の業務では、PHPをメインにサーバーサイドの言語を扱っています。 最近のお気に入りはJavascriptです。 Vue.jsを狂喜乱舞しながら、社内に布教中です。

-vue.js
-, , , ,