基于Vue3封装实现图片查看器

 更新时间:2025年02月26日 08:42:55   作者:视觉CG  
这篇文章主要为大家详细介绍了如何基于Vue3封装实现一个图片查看器,可以点击图片放大和关闭放大的图片,感兴趣的小伙伴可以了解一下

需求

点击图片放大

可关闭放大的 图片

下载

cnpm in viewerjs

状态管理+方法

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();
  //   图片查看器关闭事件
  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>

到此这篇关于基于Vue3封装实现图片查看器的文章就介绍到这了,更多相关Vue3图片查看器内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Vue状态管理库Vuex的入门使用教程

    Vue状态管理库Vuex的入门使用教程

    Vuex是一个专门为Vue.js应用程序开发的状态管理库。它采用了一个集中式的架构,将应用程序的所有组件的状态存储在一个单独的地方。这使得状态的管理和维护变得更加容易
    2023-03-03
  • vue 输入框输入任意内容返回数字的实现

    vue 输入框输入任意内容返回数字的实现

    本文主要介绍了vue 输入框输入任意内容返回数字的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-03-03
  • vue圆环百分比进度条组件功能的实现

    vue圆环百分比进度条组件功能的实现

    在一些页面设置进度条效果给人一种很好的体验效果,今天小编教大家vue圆环百分比进度条组件功能的实现代码,代码超级简单啊,感兴趣的朋友快来看下吧
    2021-05-05
  • 基于Vue2实现语音报警功能的示例代码

    基于Vue2实现语音报警功能的示例代码

    Vue2 实现消息语音报警功能 下面是一个完整的Vue2消息语音报警实现方案,包含多种语音播报方式和自定义配置。 1. 安装依赖 2. 语音报警组件 核心语音服务类 Vue2语音报警组件 3. 全局事
    2025-11-11
  • vue静态配置文件不进行编译的处理过程(在public中引入js)

    vue静态配置文件不进行编译的处理过程(在public中引入js)

    这篇文章主要介绍了vue静态配置文件不进行编译的处理过程(在public中引入js),具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-03-03
  • Vue设置页面全屏实例代码

    Vue设置页面全屏实例代码

    文章介绍了如何在Vue中设置页面全屏,包括下载插件、全屏、退出全屏、全屏切换等操作,同时,还分享了在若依框架中实现主页面内容全屏的方法,包括配置全局变量和在布局文件中进行设置
    2025-02-02
  • vite搭建vue3项目的搭建步骤

    vite搭建vue3项目的搭建步骤

    本文主要介绍了vite搭建vue3项目的搭建步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2025-09-09
  • vue3中ace-editor的简单使用方法实例

    vue3中ace-editor的简单使用方法实例

    这篇文章主要给大家介绍了关于vue3中ace-editor简单使用的相关资料,ace-editor是一种代码编辑器,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2023-10-10
  • vue echarts实现横向柱状图

    vue echarts实现横向柱状图

    这篇文章主要为大家详细介绍了vue echarts实现横向柱状图,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-09-09
  • Vue实现淘宝购物车三级选中功能详解

    Vue实现淘宝购物车三级选中功能详解

    这篇文章主要介绍了通过Vue实现淘宝购物车中三级选中的功能,文中的实现过程讲解详细,对我们学习Vue有一定的帮助,感兴趣的可以了解一下
    2022-01-01

最新评论