ElementUI之关于el-image组件的研究

740 阅读2分钟
前言

有人可能会好奇了,el-image 组件就一个图片展示有什么好研究的?
那你一定没发现,它还有一个让人又爱又恨的 preview-src-list 大图预览属性,功能还挺齐全的,像什么放大、缩小、旋转、全屏、连续查看 功能都有,这就很 nice!
但可惜,它没有单独的API,必须搭配 el-image 使用,这就导致使用场景被限制了很多很多 ...

没办法,又不想自己写,又想使用这个功能,只能狠下心去研究一下源码了 ....

。。。。。。
以上省略一万字研究过程,终于皇天不负苦心人,有结果了!

方案一

也是最无脑的方法,直接把 image-viewer 组件源码的相关文件都拷贝一份出来,只不过东西有点多有点杂,牵扯的方法还是挺多的,反正我是嫌繁琐了,不想弄。

方案二

通过 import 导入组件

import ElImageViewer from "element-ui/packages/image/src/image-viewer";

就给个地址了,剩下的你们自己解决去

方案三

虽然导入的已经很便捷了,但是呢,在某种场景下,使用了 el-image 组件,但是又不想通过点击图片触发预览大图 ....
这种情况下,我的懒 绝不允许我再去引入一个组件去实现预览大图
所以,再二次观看源码后,意外的发现了一个更简洁的方案!

Html

<el-image ref="imgView"></el-image>

Javascript

this.$refs.imgView.clickHandler();  //可直接打开预览效果

有个小细节要注意一下,就是 :preview-src-list 不能为空,必须得有值,调用这个方法才会生效,要不然是没用的!

最后,再奉上一条消息,通过 clickHandler 事件打开预览效果,<el-image> 标签可设置 display:none; !!!
这样的话,似乎比直接导入 image-viewer 组件更便捷了那么一丢丢吧!