Vue.jsでコンポーネントベースのLazy Loadを実装する「vue-clazy-load」

vue-clazy-loadとは

vue-clazy-loadは、コンポーネントベースで実装する画像のLazy Loadライブラリです。

読み込む際に、画像と別のコンポーネントを入れ替える事で、スピナーやプログレスバーのローダーを使用できるようにしているそうです。

<transition>を使ってアニメーションも設定可能です。

 

【動画サイズ:985KB】

 

環境

この記事は、以下の管理人の検証環境にて記事にしています。

vue.js 2.6.10
vue-clazy-load 0.4.2

 

ライブラリの取得

ライブラリを取得するには、npm, yarn, CDNのどれか一つを使用します。

npm

npm install vue-clazy-load

yarn

yarn add vue-clazy-load

CDN

<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/vue-clazy-load.min.js"></script>

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

 

導入手順

管理人が行った、動作確認サンプルを実装するために、以下の手順でソースコードを導入していきます。
このサンプルでは、コンポーネントベースで実装する画像のLazy Loadを実装します。

 

step
1
ライブラリの呼び出し

まずライブラリを呼び出す為に、以下の2通りのケースで呼び出します。

ES6等で実装する場合

// ES6
import VueClazyLoad from 'vue-clazy-load'
// Common/Require
var VueClazyLoad = require('vue-clazy-load')

UMDで実装する場合

const VueClazyLoad = window['VueClazyLoad'].default;

 

step
2
メソッドを設定


上記で取得した  VueClazyLoad Vue.useに取り込みます。

Vue.use(VueClazyLoad);
  new Vue({
  el: '#app'
});

 

step
3
テンプレートを準備

<clazy-load>を画像の数だけ配置します。

今回のサンプルでは、ループを回してコンポーネントを配置します。

LazyLoadしたい画像やプログレスを<transition> で囲んでやることで、イン・アウトの際にアニメーションを設定することが可能です。

サンプルはケバブケースで記載しています。

<div id="app">
  <clazy-load class="wrapper" :src="'https://unsplash.it/500/500/?t='+n" v-for="(index, n) in 32" :key="index">
    <transition name="fade">
      <img :src="'https://unsplash.it/500/500/?t='+n">
    </transition>
    <transition name="fade" slot="placeholder">
      <div class="preloader">Loading message</div>
    </transition>
  </clazy-load>
</div>

 

サンプル

今回のソースを実際に触って確認できるようにデモを用意しました。

See the Pen Vue.jsでコンポーネントベースのLazy Loadを実装する「vue-clazy-load」 by カバの樹 (@kabanoki) on CodePen.dark

 

さいごに

コンポーネントベースで実装する画像のLazy Loadライブラリでした。

今日はこの辺でー

 

  • この記事を書いた人

カバノキ

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

-Lazy Load, UI Utilities, vue.js, ライブラリ
-, , , , ,