Vue.jsで画像リストに選択機能を実装する「vue-select-image」

vue-select-imageとは

vue-select-imageは、画像リストの画像をクリックして、選択した画像を取得できる機能が実装されるコンポーネントライブラリです。

単体の選択機能はもちろん、複数選択を行うこともできます。

 

【動画サイズ:331KB】

 

環境

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

vue.js 2.6.10
vue-select-image 1.9.0

 

ライブラリの取得

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

npm

npm i vue-select-image --save

yarn

yarn add vue-select-image

CDN

<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/[email protected]/dist/vue-select-image.css">
<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/vue-select-image.js"></script>

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

 

導入手順

管理人が行った、動作確認サンプルを実装するために、以下の手順でソースコードを導入していきます。
このサンプルでは、画像リストの画像をクリックして、選択した画像を取得できる機能を実装します。

 

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

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

ES6等で実装する場合

import VueSelectImage from 'vue-select-image'
require('vue-select-image/dist/vue-select-image.css')

UMDで実装する場合

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

 

step
2
メソッドを設定

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

Vue.use(VueSelectImage);
new Vue({
  el: '#app',
  data: {
    images: [{
      id: '1',
      src: 'https://unsplash.it/200?random',
      alt: 'Alt Image 1'
    }, {
      id: '2',
      src: 'https://unsplash.it/200?random',
      alt: 'Alt Image 2'
   }, {
      id: '3',
      src: 'https://unsplash.it/200?random',
      alt: 'Alt Image 3',
      disabled: true
   }, {
      id: '4',
      src: 'https://unsplash.it/200?random',
      alt: 'Alt Image 4',
   }, {
      id: '5',
      src: 'https://unsplash.it/200?random',
      alt: 'Alt Image 5',
   }],
   initialSelected:[{id: '5'}],
   SelectImage: '',
   SelectMultipleImage:['id:5']
 },
 methods: {
   onSelectImage:function(selected){
     this.SelectImage = "id:" + selected.id
   },
   onSelectMultipleImage:function(selected){
     let arr = [];
     for(let i=0; i<selected.length; i++){
       arr.push("id:" + selected[i].id);
    }
    this.SelectMultipleImage = arr;
   }
  }
});

 

step
3
テンプレートを準備

<vue-select-image>を配置します。
:data-images に画像のデータimagesを設定します。

複数選択をするには、:is-multipletrueにします。
:selected-images にデータを設定すると、デフォルトで選択された状態になります。

オプションを使って色を設定したりできます。

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

<div id="app">
  <h2>Single</h2>
  <vue-select-image
    :data-images="images"
    @onselectimage="onSelectImage">
  </vue-select-image>
  <p>選択中:{{SelectImage}}</p>
  <h2>Multiple</h2>
  <vue-select-image
   :data-images="images"
   :is-multiple="true"
   :selected-images="initialSelected"
   @onselectmultipleimage="onSelectMultipleImage">
  </vue-select-image>
  <p>初期値:{{initialSelected}}</p>
  <p>選択中:{{SelectMultipleImage}}</p>
</div>

 

サンプル

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

See the Pen Vue.jsで画像リストに選択機能を実装する「vue-select-image」 by カバの樹 (@kabanoki) on CodePen.dark

 

さいごに

画像リストの画像をクリックして、選択した画像を取得できる機能が実装されるコンポーネントライブラリです。

今日はこの辺でー

 

  • この記事を書いた人

カバノキ

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

-Miscellaneous, UI Components, vue.js, ライブラリ
-, , , , ,