目次
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メソッドを設定
上記で取得したVueSelectImageをVue.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-multipleをtrueにします。
: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
さいごに
画像リストの画像をクリックして、選択した画像を取得できる機能が実装されるコンポーネントライブラリです。
今日はこの辺でー