vue里面通过elementUI组件实现图片预览

需求:我们在开发中经常会遇到通过点击某个按钮或者文字实现图片的预览功能。这里我们分别介绍vue2和vue3里面如何实现图片预览方法

Vue2通过el-image的组件实现图片预览

1,通过ref给el-image组件上面获取DOM元素,然后我们通过clickHandler方法来实现点击图片预览

<template>
	<div>
		<el-button type="primary" @click=PreviewImg() >图片</el-button>
		<el-image
		 ref="elImage"
		  style="width: 0; height: 0;"
		  :src="bigImageUrl"
		  :preview-src-list="logicImageList">
		</el-image>
	</div>
</template>
<script>
export default {
data () {
 return {
    bigImageUrl: '',
    logicImageList: []
  }
},
methods :{
	PreviewImg() {
		// 调用接口之后获取图片数据
		this.logicImageList = res.data.map((item) => { return item.accessUrl })
          this.$nextTick(() => {
            this.$refs.elImage.clickHandler()
          })
	}
}
}
</script>

Vue3通过el-image-viewer的组件实现图片预览

2,这里我们区别vue2的使用,我们通过v-if判断是否预览弹窗图片的。

<template>
	<div>
		<el-button type="primary" @click=PreviewImg() >图片</el-button>
		<el-image-viewer
		    style="width: 100px; height: 100px"
		    v-if="state.imgViewerVisible"
		    @close="closeImgViewer"
		    :url-list="state.srcList">
		  </el-image-viewer>
	</div>
</template>
<script setup lang="ts" name="uploadFile">
import { nextTick, reactive } from 'vue';
const state: any = reactive({
  imgViewerVisible: false,
  srcList: []
})
function PreviewImg() {
	// 调用接口之后获取图片数据
	state.srcList= res.data.map((item) => { return item.accessUrl })
       state.imgViewerVisible = true
}

function closeImgViewer () {
	state.imgViewerVisible = false
}
}
</script>
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值