当前位置: 首页 > Web前端 > vue.js

vue3项目中使用vue-pdf

时间:2023-03-31 14:14:51 vue.js

的前提:不小心建了vue3项目,vue-pdf最新版本是4.2.0,不是为vue3建的问题一:TypeError:hisnotafunction原因:h在vue3中render函数不再以参数形式出现,需要手动导入解决:将vue-pdf中的render:function(h)替换为render:function(),然后手动导入import{h}from'vue'invue-pdf的依赖vue-resize-sensor也将render:function(create)替换为render:function(),然后手动importimport{hascreate}from'vue'问题2:ReferenceError:$emitisnotdefined解决:npminstallvue-happy-bus--save,然后手动importimport{$on,$emit}from'vue-happy-bus'。this.$on换成$on,this.$emit换成$emit问题3:修改vue-pdf和vue-resize-sensor中的源码如何上传到自己的项目解决方法:npminstallpatch-package--save-dev,npxpatch-packagevue-pdfnpxpatch-packagevue-resize-sensor修改package.json"scripts":{"serve":"vue-cli-serviceserve","build":"vue-cli-servicebuild","lint":"vue-cli-servicelint","postinstall":"patch-package"//添加这条命令},遗留问题:不知道如何处理生命周期vue-pdf中的hook函数,把destroyed换成unmounted,destroy()换成unmount()还是报错,暂时注释掉