1.背景

目前需要做一个展示pdf功能的需求,所以想到了使用vue-pdf插件,该插件在vue-cli中很好使用,不会出现啥问题,但是放到nuxt项目中就会出现一些问题

2.整合

1.官网地址:https://www.npmjs.com/package/vue-pdf

cnpm install --save vue-pdf

2.写插件js,放到plugins目录下

import Vue from 'vue'
import pdf from 'vue-pdf'
Vue.component('pdf', pdf)

3.nuxt.config.js中添加该js

 plugins: [{ src: '~/plugins/pdf.js', ssr: false }]

4.最重要的一步,要在nuxt.config.js的build的属性下加下面一段代码,如果不加,那么使用<pdf>标签会报错,就算你在.vue文件中使用 import pdf from 'vue-pdf'直接导入,依然会报错

build: {extend(config, ctx) {config.output.globalObject = 'this'config.module.rules.push({test: /\.pdf$/,loader: 'url-loader'})}
}

到这里,基本的功能都可以使用了,使用pdf标签也不会报错了,但是使用pdf的分页功能依然会报错

3.pdf分页

当pdf有多页时,就需要使用pdf的分页功能,否则你只能看到pdf的第一页

那么在官方文档上面使用是如下使用的:

import pdf from 'vue-pdf'var loadingTask = pdf.createLoadingTask('https://cdn.mozilla.net/pdfjs/tracemonkey.pdf');

但是这里在nuxt项目中就会出现问题了,只要你在script中使用import pdf fom 'vue-pdf'或者require都会报错,大致的错误也不是很能看懂,但是好像是因为服务端的原因,导致有些东西引不进去。所以我们需要将导入的操作放到客户端做:即在created的process.client环境下或者是mounted下:

<pdf :src="src"  v-for="i in numPages":key="i":page="i"></pdf>data () {return {numPages: 0,src: '',vuePdf: null}
},
created() {if (process.client) {this.vuePdf = require('vue-pdf')this.pdfLoadTask()}
},
methods:{pdfLoadTask () {this.src = this.vuePdf.default.createLoadingTask("这里填pdf的url地址或者本地文件地址")this.src.then(pdf => {this.numPages = pdf.numPages;})}

这样就可以使用createLoadingTask方法来加载pdf了

nuxt整合vue-pdf插件和使用createLoadingTask方法进行分页相关推荐

  1. 实用VUE 开发插件!!前端必备

    element - 饿了么出品的Vue2的web UI工具套件 Vux - 基于Vue和WeUI的组件库 mint-ui - Vue 2的移动UI元素 iview - 基于 Vuejs 的开源 UI ...

  2. 好用的vue组件插件及框架

    实用的vue插件大汇总 Vue是一个构建数据驱动的 web 界面的渐进式框架.Vue.js 的目标是通过尽可能简单的 API 实现响应的数据绑定和组合的视图组件特别整理了常用的vue插件,来了个大汇总 ...

  3. vue周边插件大全,收藏

    Vue是一个构建数据驱动的 web 界面的渐进式框架.Vue.js 的目标是通过尽可能简单的 API 实现响应的数据绑定和组合的视图组件特别整理了常用的vue插件,来了个大汇总,方便查找使用,便于工作 ...

  4. vue 常用插件集合(最全)

    UI组件 element- 饿了么出品的Vue2的web UI工具套件 Vux- 基于Vue和WeUI的组件库 mint-ui- Vue 2的移动UI元素 iview- 基于 Vuejs 的开源 UI ...

  5. vue常用插件,可自定义选择。vue demo

    UI组件 element- 饿了么出品的Vue2的web UI工具套件 Vux- 基于Vue和WeUI的组件库 mint-ui- Vue 2的移动UI元素 iview- 基于 Vuejs 的开源 UI ...

  6. made with vue.jsvue 插件集合

    目录 来源与segmentfault UI 更多查看:https://madewithvuejs.com/?page=1 UI组件 开发框架 实用库 服务端 辅助工具 应用实例 Demo示例 来源与s ...

  7. springboot整合vue小试牛刀

    序 本文主要研究一下如何在springboot工程整合vue maven <dependency><groupId>org.springframework.boot</g ...

  8. 分享一个简单好看的html的表格table(个人简历的html表格),vue table,以及vue打印(简单好用的vue打印插件)

    想写一个很普通的那种像word文档样式的table,发现网上很多都是什么教程,没有合适的,我只想要一个拿来就能用的html的table(非专业前端),没有什么别的依赖,而且样式要很普通的简单的表格.既 ...

  9. Vue PDF文件预览打印vue-pdf

    Vue PDF文件预览vue-pdf 最近做项目,遇到预览PDF这个功能,在网上找了找,大多推荐的是pdf.js,不过在Vue中还是想偷懒直接npm组件,最后找到了一个还不错的Vue-pdf 组件,G ...

  10. html5做探探,基于Nuxt.js+Vue聊天实例|nuxt仿微信/探探聊天界面

    1.项目简介 Nuxt.js是目前比较热门的服务端渲染SSR框架.凭借其更好的SEO.更快的内容到达时间(*首屏渲染速度快*) 加之基于Vue.js技术开发,更易于上手,获得了很多技术开发者的青睐. ...

最新文章

  1. 获取用户Ip地址通用方法常见安全隐患 x-forwarded-for
  2. 八大主流Linux桌面环境特性汇总报告
  3. bootstrap-实现loading效果
  4. webflux系列--reactor源码(一)
  5. Idea debug时报错:Command line is too long
  6. 简单dfs序 + 树链剖分
  7. HTML的DOM和XML的DOM对象的区别
  8. Java Generics示例教程 - 通用方法,类,接口
  9. 追本溯源:Oracle 只读表空间的探索实践
  10. 【数据结构】思维导图补充知识
  11. mysql 键 索引_五、MySQL索引和键
  12. HDF5: Python 的h5py与Julia的HDF5库读取效率比较,不差上下
  13. 计算机毕业设计的代码会查重吗,一般毕业论文会查重代码吗?
  14. Navicat基础mysql语法
  15. Windows环境搭建Red5流媒体服务器指南
  16. CMSIS 记录与下载
  17. 身份证后四位是否唯一
  18. jenkins调用VS201X
  19. Tina-TI——小巧好用又高效的原理图仿真软件
  20. Excel 数据统计小技巧

热门文章

  1. win10系统瑞星杀毒的卸载
  2. 振荡电路设计原理与设计
  3. [轻笔记]Juliav0.6配置jupyter
  4. 360漏洞修复卡在正在安装的解决方法
  5. 帮室友写的表白程序 Python打包成exe文件
  6. 既然选择了远方,便只顾风雨兼程
  7. linux最全网络监控命令梳理及评测
  8. ios开发中UIButton设置标题和图片不能同时显示问题解决
  9. 编译原理——自下而上语法分析
  10. Android性能优化的问题