vue3中各种类型文件进行预览功能实例

 更新时间:2021年09月02日 12:03:06   作者:子壹  
在vue移动端项目中经常遇到这样的需求,对一些上传的附件可以点击之后在线预览,所以下面这篇文章主要给大家介绍了关于vue3中各种类型文件进行预览功能的相关资料,需要的朋友可以参考下

前言

摸着石头过河的滋味不好受啊,听说大厂的大佬们都在忙着用vue3在升级项目,我也没事凑一波热闹。身处某小厂还是不甘于折腾。新做一个项目,直接上vue3 ,头脑发热 ,可能有人不计后果,但是跌跌撞撞还是基本搞完了,那记录一下吧

今天说一下开发过程中的某一个功能吧!反正耗费不少时间,先说说功能需求吧:在上传文件之后的文件列表中能够点击进行预览,包含文件媒体类型包括 图片 、word excel等文档文件、pdf、视频、音频 的预览针对pc端

1.office文档类型的预览

首先看到的是word excel 等文档文件的预览,针对改问题开始还是网上搜寻了一些方法,毕竟我这经验甚少,有人推荐a标签直接下载预览,显然不符合我们预期,有人推荐excel 使用sheetjs 但是我们word 也需要另找他法,最终我还是确定了使用微软的在线预览,使用iframe作为载体进行

<iframe  frameborder="0" 
:src="'https://view.officeapps.live.com/op/view.aspx?src=' + fileUrl" width='100%'>
</iframe>

需要考虑的是我当时element-plus的dialog 弹框里,iframe不能很好的撑开父元素所以又填充一些代码。并且加载过程比较慢,由于时间原因就没有考虑进行其他方法的尝试

2.pdf类型的预览

对于这种pdf的预览,感觉好解决啊,使用原来使用过的 npm install pdfjs-dist ,开搞就完了,万万没想到我这个目前还没有支持vue3 所以理所当然的上来一跑就报错也是理所应当的,果断百度啊,百度告诉我说,这个pdfjs-dist vue3 不支持呐还,换个方法吧,我***,用你说 我想找解决办法,主角来了下载之后将build和web文件夹放在我们的public文件下 做一下引用,注意自己的地址是不是对,我放在了一个embed 里

  data.pdfUrl = './pdf/web/viewer.html?file='+type;  // 线上预览
 <embed  :src="pdfUrl" style="width: 100%; "/>

3. 图片类型

我觉这种类型 ,我们都不必多说,直接上代码就可以了,处理一下url

<div v-if="showImg == true" class="dialog-body-content-base-style">
    <el-image
        class="image-preview"
        :src="imgUrl"
        />
</div>

4.视频类型

对于视频类型本来是想直接使用 video元素直接放里的但是我是一个有追求的程序猿,追求自己的理想,没事就是折腾么,开始使用vue-video-palyer 进行视频预览,但是就是天不遂愿,完vue3 中报错 ,说白了又来了宝贝,没支持vue3 呗? 没事我习惯了,推荐大家用一波vue-vam-video

npm install vue-vam-video -s
import VamVideo from "vue-vam-video";
components: {
    VamVideo,
},
setup(props,context) {
    const data = reactive({
        videoOption: {
            properties: {
                poster: '',
                src:"",
                preload: "auto",
                // loop: "loop",
                // autoplay:"autoplay",
                // muted:true
            },
            videoStyle: {
                width: "100%",
                // height: "600px",
            },
            controlsConfig: {
                fullScreenTit:"全屏",
                EscfullScreenTit:"退出全屏",
                speedTit:"倍速",
                yinliangTit:"音量",
                jingyinTit:"静音",
                playTit:"播放",
                pauseTit:"暂停",
                fullScreen:true,
                speed:true,
                listen:true
            }
        },
    })
}     
<vam-video
    :properties="videoOption.properties"
    :videoStyle="videoOption.videoStyle"
    :controlsConfig="videoOption.controlsConfig"
    @play="playVideo"
    @canplay="canplayVideo"
    @pause="pauseVideo"
></vam-video>

5. 音频类型

吃了上边的亏,终于还是决定使用audio 这个标签了,直接使用就完了。

<audio :src="musicUrl" controls></audio>

综上建议大家考虑周全 ,像大厂的大佬们有自己的组件库,丝毫不担心,但是小厂的我们还是谨慎一点。 希望vue更多的组件库、功能库更加完善,毕竟站在巨人肩膀上是方便的。没事多研究源码 。。。。。。

总结

到此这篇关于vue3中各种类型文件进行预览功能的文章就介绍到这了,更多相关vue3各种类型文件预览内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • vue中this.$router.push()路由传值和获取的两种常见方法汇总

    vue中this.$router.push()路由传值和获取的两种常见方法汇总

    这篇文章主要介绍了vue中this.$router.push()路由传值和获取的两种常见方法,本文结合示例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-12-12
  • 详解vue3.x页面功能拆分方式

    详解vue3.x页面功能拆分方式

    本文主要介绍了vue3.x页面功能拆分方式,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-05-05
  • vue中el-table实现可拖拽移动列和动态排序字段

    vue中el-table实现可拖拽移动列和动态排序字段

    最近公司需要做个项目,需要拖拽表格和自定义表格字段,本文主要介绍了vue中el-table实现可拖拽移动列和动态排序字段,具有一定吃参考价值,感兴趣的可以了解一下
    2023-12-12
  • vue3基于script setup语法$refs的使用

    vue3基于script setup语法$refs的使用

    这篇文章主要介绍了vue3基于script setup语法$refs的使用,<BR> 在用vue3开发项目的时候,需要调用子组件的方法,于是想着用$refs来实现,但是我是使用script setup语法糖,原先vue2的语法已经不适用了。下面我们一起进入文章看详细内容吧</P><P>
    2021-12-12
  • 如何提升vue.js中大型数据的性能

    如何提升vue.js中大型数据的性能

    这篇文章主要介绍了提高vue.js中大型数据的性能,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,,需要的朋友可以参考下
    2019-06-06
  • 详解element-ui设置下拉选择切换必填和非必填

    详解element-ui设置下拉选择切换必填和非必填

    这篇文章主要介绍了详解element-ui设置下拉选择切换必填和非必填,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-06-06
  • 浅析Vue3中的逻辑复用

    浅析Vue3中的逻辑复用

    这篇文章主要为大家详细介绍了Vue3中逻辑复用的相关知识,文中的示例代码简洁易懂,对我们深入了解Vue3有一定的帮助,需要的小伙伴可以参考下
    2023-12-12
  • vue2创建高复用组件的方法示例

    vue2创建高复用组件的方法示例

    Vue2中的高复用组件通常是指那些设计得足够通用,并能多次在项目中重复使用的组件,本文给大家详细介绍了vue2创建高复用组件的方法示例,并通过代码示例讲解的非常详细,需要的朋友可以参考下
    2024-07-07
  • vue3 中 computed 新用法示例小结

    vue3 中 computed 新用法示例小结

    这篇文章主要介绍 vue3 中 computed 的新用法,对比 vue2 中的写法,让您快速掌握 vue3 中 computed 的新用法,对函数式写法,options 写法相关知识感兴趣的朋友一起看看吧
    2021-11-11
  • vue的diff算法知识点总结

    vue的diff算法知识点总结

    本篇文章给大家分享了关于vue的diff算法的相关知识点总结,有兴趣的朋友参考学习下。
    2018-03-03

最新评论