vue3+element plus图片预览点击按钮直接显示图片的预览形式

1 需求

直接上需求:

我想要直接点击下面这个"预览"按钮,然后呈现出预览图片的形式

也就是点击完"预览"按钮,会像下面这样:

ok,需求知道了,下面让我们来看看如何实现吧 ~

2 实现

template部分

ini 复制代码
<el-button
  type="primary"
  size="small"
  @click="handlePreview(scope.$index, scope.row)"
  >预览</el-button
>
<!-- 图片预览 -->
<el-image-viewer
  v-if="showImagePreview"
  :zoom-rate="1.2"
  @close="closePreview"
  :url-list="imgPreviewList"
/>

script部分

ini 复制代码
const imgPreviewList = ref<any>([])
const showImagePreview = ref(false)
const currentBase64FileData = reactive({
  base64: '',
  name: ''
})
​
const handlePreview = async (index: number, row: any) => {
    let res = await handleDownload(index, row, true,)
    currentBase64FileData.base64 = 'data:image/png;base64,' + res?.base64
    currentBase64FileData.name = res?.name
    showImagePreview.value = true
    // 下面数组里可以放一个url,如'https://raw.githubusercontent.com/JACK-ZHANG-coming/map-depot/master/2023image-20231120091054028.png',我这里放的是一个base64数据,也可以用来显示图片
    imgPreviewList.value = [currentBase64FileData.base64]
}
​
const closePreview = () => {
  imgPreviewList.value = []
  showImagePreview.value = false
}

ok,经过上面简单几句代码,就实现了"点击按钮直接显示图片的预览形式"啦 ~

3 技术小结

技术栈: vue3+ element plus,其中vue3采用的是script setup组合式语法的形式。

这部分功能其实在element plus官方文档中有写,

element-plus.org/zh-CN/compo...

不同的是,这里element plus并没有给出实际样例,只是用文字描述了下,咱就是说,家人们,这坑不坑,我还是看了别人的博客才知道这块的用处>_<

相关推荐
z***75151 小时前
【Springboot3+vue3】从零到一搭建Springboot3+vue3前后端分离项目之后端环境搭建
android·前端·后端
fruge2 小时前
仿写优秀组件:还原 Element Plus 的 Dialog 弹窗核心逻辑
前端
an86950012 小时前
vue新建项目
前端·javascript·vue.js
w***95493 小时前
SQL美化器:sql-beautify安装与配置完全指南
android·前端·后端
顾安r3 小时前
11.22 脚本打包APP 排错指南
linux·服务器·开发语言·前端·flask
万邦科技Lafite4 小时前
1688图片搜索商品API接口(item_search_img)使用指南
java·前端·数据库·开放api·电商开放平台
yinuo5 小时前
网页也懂黑夜与白天:系统主题自动切换
前端
Coding_Doggy5 小时前
链盾shieldchain | 项目管理、DID操作、DID密钥更新消息定时提醒
java·服务器·前端
用户21411832636025 小时前
dify案例分享-国内首发!手把手教你用Dify调用Nano Banana2AI画图
前端
wa的一声哭了5 小时前
Webase部署Webase-Web在合约IDE页面一直转圈
linux·运维·服务器·前端·python·区块链·ssh