Vue.jsベースのフレームワーク! Nuxt3プラグイン《nuxt-easy-lightboxで画像プレビューの簡単実装 》

こんにちは、樋口です。
 
今回はNuxt3で画像のプレビューを表現できる「nuxt-easy-lightbox」についてご紹介します。非常に簡単に画像のプレビューを実現できるので、ぜひご覧ください。

使用するライブラリ

今回は下記ライブラリを使用します。

Vue.js
3.4.21
Nuxt.js
3.11.1
nuxt-easy-lightbox
1.0.2

nuxt-easy-lightboxの追加

初めにコマンドプロンプトで、使用するNuxt.jsのプロジェクトフォルダまで移動します。移動後、以下のコマンドを実行します。

npm i nuxt-easy-lightbox


 
これで対象のプロジェクトに、ライブラリを追加することができました。
 
次に実際のライブラリの使用方法について解説していきます。

プロジェクト構成

今回は下記のプロジェクト構成で作業を行っていきます。

 sample-project
   |- .nuxt
   |- node_modules
   |- pages
     |- sample
       |- index.vue ← 今回修正ファイル
   |- public
   |- server
   |- .gitignore
   |- app.vue
   |- nuxt.config.ts
   |- package.json
   |- package-lock.json
   |- README.md
   |- tsconfig.json

nuxt.config.tsファイルへの記載追加

ライブラリを追加したら、「nuxt.config.ts」ファイルの「modules」にライブラリの記載を追加します。
 
– nuxt.config.ts

export default defineNuxtConfig({
  devtools: { enabled: true },
  modules: [
    'nuxt-easy-lightbox'← 記載追加
  ],
})

これでライブラリの利用が可能となります。

Vueファイル

今回サンプル用に作成した、Vueファイルを下記に記載します。
 
– index.vue

<template>
<div style="text-align: center;">
    <h1>nuxt-easy-lightbox</h1>
    <div>
      <div
        v-for="(src, index) in imgs"
        :key="index"
        class="pic"
        @click="() => showImg(index)"
      >
        <img :src="src" style="width: 300px;"/>
      </div>
      <VueEasyLightbox
        :visible="visibleRef"
        :imgs="imgs"
        :index="indexRef"
        @hide="onHide"
      />
    </div>
</div>
</template>

<script setup>
const visibleRef = ref(false)
const indexRef = ref(0)

const imgs = [
  "https://amg-official.s3.ap-northeast-1.amazonaws.com/wp-content/uploads/2020/05/01140129/nuxt-ic2.jpg",
  "https://amg-official.s3.ap-northeast-1.amazonaws.com/wp-content/uploads/2021/07/20152933/feels20210721-ic.jpg",
  "https://amg-official.s3.ap-northeast-1.amazonaws.com/wp-content/uploads/2021/06/15213024/oyako2021-ic.jpg"
]

const showImg = (index) => {
  indexRef.value = index
  visibleRef.value = true
}
const onHide = () => (visibleRef.value = false)
</script>

<style>
.pic {
  width: 300px;
  float: left;
  margin-right: 10px;
}
</style>

 

5行目~12行目:
プレビューを行える画像の一覧を表示しています。「imgs」の変数に設定されている画像分ループを行い、その画像を「img」タグで表示しています。
ここでの重要ポイントは、@click で「showImg(index)」関数を呼び出し、クリック時にプレビューダイアログを表示するよう設定している点です。
 
13行目~18行目:
プレビュー用のダイアログを表示するコンポーネントとなります。「visible」ではダイアログの表示/非表示、「imgs」では表示する画像の一覧配列を設定し、「index」では、画像一覧のどの画像を表示するか(何番目か)を指定しています。
 
24行目~25行目:
リアクティブな変数として「visibleRef」「indexRef」を宣言し、以降の画像クリック時の関数で、値の変更を行っていきます。
 
27行目~31行目:
表示する画像の一覧を設定しています。
 
33行目~36行目:
画像クリック時に呼び出される関数となります。「indexRef.value = index」で選択された画像の番号を、「visibleRef.value = true」でプレビュー画面の表示を設定しています。「visibleRef」「indexRef」はともにリアクティブ変数のため、即時にプレビュー画面に変更が通知されます。
 
37行目:
プレビュー画面を閉じられたときに、ダイアログを非表示にするためのコールバックです。
 

実行結果

– 表示結果
 

 

 

最後に

今回は、画像一覧を簡単にプレビューできるライブラリについてご紹介しました。今後も、このように簡単に利用できる Nuxt3 のライブラリを紹介していければと思います。
 
次回もよろしくお願いします。
 
 
 
 
《関連記事》

VueDatePickerを日本語対応
技術
2025.10.7(Tue)

Vue 3でVueDatePickerを日本語対応する方法|locale・format設定を解説【サンプル付き】

#プログラム#JavaScript#Vue.js
 

nuxt-timeで現在日付の表示
技術
2025.9.10(Wed)

Vue.jsベースのフレームワーク! Nuxt3プラグイン《nuxt-timeで現在日付の表示》

#プログラム#Nuxt.js#Vue.js
 

@nuxtjs/color-modeで画面背景の変更
技術
2025.8.20(Wed)

Vue.jsベースのフレームワーク! Nuxt3プラグイン《@nuxtjs/color-modeで画面背景の変更 》

#プログラム#JavaScript#Nuxt.js#Vue.js
 

記事をシェア
MOST VIEWED ARTICLES