亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

基于Vue3封裝實現(xiàn)圖片查看器

 更新時間:2025年02月26日 08:42:55   作者:視覺CG  
這篇文章主要為大家詳細(xì)介紹了如何基于Vue3封裝實現(xiàn)一個圖片查看器,可以點擊圖片放大和關(guān)閉放大的圖片,感興趣的小伙伴可以了解一下

需求

點擊圖片放大

可關(guān)閉放大的 圖片

下載

cnpm in viewerjs

狀態(tài)管理+方法

stores/imgSeeStore.js

import { defineStore } from 'pinia'
export const imgSeeStore = defineStore('imgSeeStore', {
    state: () => ({
        showImgSee: false,
        ImgUrl: '',
    }),
    getters: {
    },
    actions: {
        openImgShow(url) {
            this.ImgUrl = url
            this.showImgSee = true
        },
        resetSeeImg() {
            this.ImgUrl = ''
            this.showImgSee = false
        }
    }
})

封裝的組件

<template>
  <img ref="el" :src="ImgUrl" />
</template>

<script setup>
import "viewerjs/dist/viewer.css";
import Viewer from "viewerjs";
import { nextTick, onMounted, ref } from "vue";
import { storeToRefs } from "pinia";
import { globalStateStore } from "src/stores/globalState";

const useGlobalStateStore = globalStateStore(),
  { ImgUrl } = storeToRefs(useGlobalStateStore),
  { resetSeeImg } = useGlobalStateStore;

const el = ref();
onMounted(async () => {
  await nextTick();
  //   圖片查看器關(guān)閉事件
  el.value.addEventListener("hide", () => resetSeeImg());

  new Viewer(el.value, {
    navbar: false,
    title: false,
  }).show();
});
</script>

使用

TestVue.vue

<template>
  <!-- 這個是要點擊查看的圖片 -->
   <img 
       style="max-width: 200px" 
       :src="img"
       @click="openImgShow(img)"
     />

<img-see v-if="showImgSee" />
</template>

<script setup>
import { ref} from "vue";
import { storeToRefs } from "pinia";
import ImgSee from "src/components/ImgSee.vue";
import { imgSeeStore} from "src/stores/imgSeeStore";  

const img = ref('/public/test.jpg')
const useImgSeeStore= imgSeeStore(),
  { showImgSee } = storeToRefs(useImgSeeStore),
  { openImgShow } = useImgSeeStore;
</script>

到此這篇關(guān)于基于Vue3封裝實現(xiàn)圖片查看器的文章就介紹到這了,更多相關(guān)Vue3圖片查看器內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Vue中實現(xiàn)路由跳轉(zhuǎn)的三種方式(超詳細(xì)整理)

    Vue中實現(xiàn)路由跳轉(zhuǎn)的三種方式(超詳細(xì)整理)

    這篇文章給大家詳細(xì)的整理了Vue中實現(xiàn)路由跳轉(zhuǎn)的三種方式,使用vue-router,聲明式-router-link,編程式這三種方法,分別有詳細(xì)的代碼示例,需要的朋友可以參考下
    2023-09-09
  • 詳解如何從零開始搭建Express+Vue開發(fā)環(huán)境

    詳解如何從零開始搭建Express+Vue開發(fā)環(huán)境

    這篇文章主要介紹了詳解如何從零開始搭建Express+Vue開發(fā)環(huán)境,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-07-07
  • vue項目設(shè)置打包后的靜態(tài)文件訪問路徑

    vue項目設(shè)置打包后的靜態(tài)文件訪問路徑

    這篇文章主要介紹了vue項目設(shè)置打包后的靜態(tài)文件訪問路徑,vue項目的最終項目文件需要經(jīng)過打包輸出,靜態(tài)文件的訪問路徑需要在vue.config.js文件中設(shè)置,本文給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2024-02-02
  • vue表單自定義校驗規(guī)則介紹

    vue表單自定義校驗規(guī)則介紹

    今天小編就為大家分享一篇vue表單自定義校驗規(guī)則介紹,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-08-08
  • 使用vue-cli webpack 快速搭建項目的代碼

    使用vue-cli webpack 快速搭建項目的代碼

    這篇文章主要介紹了vue-cli webpack 快速搭建項目的教程詳解,本文通過實例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友可以參考下
    2018-11-11
  • vue使用axios上傳文件(FormData)的方法

    vue使用axios上傳文件(FormData)的方法

    這篇文章主要介紹了vue使用axios上傳文件(FormData)的方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-04-04
  • Vue Mixins混入介紹與使用

    Vue Mixins混入介紹與使用

    如果我們在每個組件中去重復(fù)定義這些屬性和方法會使得項目出現(xiàn)代碼冗余并提高了維護(hù)難度,針對這種情況官方提供了Mixins特性,這時使用Vue mixins混入有很大好處,下面就介紹下Vue mixins混入使用方法,需要的朋友參考下吧
    2023-02-02
  • 圖文介紹Vue父組件向子組件傳值

    圖文介紹Vue父組件向子組件傳值

    本文通過實例代碼給大家詳細(xì)分享了Vue父組件向子組件傳值的過程以及關(guān)鍵點講解,一起學(xué)習(xí)參考下吧。
    2018-02-02
  • Vue ​v-model相關(guān)知識總結(jié)

    Vue ​v-model相關(guān)知識總結(jié)

    這篇文章主要介紹了Vue &#8203;v-model相關(guān)知識總結(jié),幫助大家更好的理解和學(xué)習(xí)使用vue框架,感興趣的朋友可以了解下
    2021-01-01
  • Vue.js組件props數(shù)據(jù)驗證實現(xiàn)詳解

    Vue.js組件props數(shù)據(jù)驗證實現(xiàn)詳解

    這篇文章主要為大家詳細(xì)介紹了Vue.js組件props數(shù)據(jù)驗證的實現(xiàn)方法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-10-10

最新評論