现在你项目中的components中定义一个叫 《vue名.vue》
<template>
<el-image-viewer
v-if="showPreview"
:urlList="previewImages"
:on-close="closeViewer"
></el-image-viewer>
</template>
<script>
import ElImageViewer from "element-ui/packages/image/src/image-viewer";
export default {
data() {
return {
showPreview: false,
previewImages: []
};
},
components: {
ElImageViewer
},
methods: {
closeViewer() {
this.showPreview = false;
}
}
};
</script>
在你任意的文件夹下创建一个js文件
import PreviewItems from " "; //引入你刚刚创建的vue
const Preview = {};
// 注册
Preview.install = function(Vue) {
const PreviewConstructor = Vue.extend(PreviewItems);
const instance = new PreviewConstructor();
instance.$mount(document.createElement("div"));
document.body.appendChild(instance.$el);
/**
* 挂载在vue原型上
* @param {Array} imgs 需要预览的图片数组
*/
Vue.prototype.$openPreview = function(imgs = []) {
instance.showPreview = true;
instance.previewImages = imgs;
};
};
export default Preview;
包括注册
在mian.js中引入这个js
import Preview from "@/utils/preview.js";
Vue.use(Preview)
在你想要引入的页面加上
this.$openPreview([file.url])