王叨叨 发布的文章

基于 PDF.js 在 Vue 中渲染 PDF 文件,支持文本渲染、懒加载、分页、缩放和打印功能。

鉴于市面上没有特别顺手的预览PDF插件,所以周末两天在家撸代码,终于搞出来一个可用的玩意。项目中使用的VUE-PDF,超过200页,直接在IE下卡死,我这个插件,500页PDF,也可以做到丝滑般的使用体验(自卖自夸)!

2021-06-21T12:38:46.png

可以看到,只加载了前两页,后面的12页全部都没有渲染。

Install

npm install cafe-pdf --save

Use

import cafePdf from 'cafe-pdf'
import 'cafe-pdf/package/cafe-pdf.css'
Vue.use(cafePdf)

Example

Demo:http://demo.const.team/pdf/

注意:使用打印功能,需配合打印样式。

- 阅读剩余部分 -

在公司内部服务器上面搭建了一个yapi,作为主要使用的接口管理工具,昨天突发奇想,登录下管理员账户,看看有多少同事在使用,平时很少记密码,都是用浏览器的记住密码功能,但是昨天突然就是死活无法用管理员账户登录。去官网上查了一下,也没有特别好的办法,只能自己去连MongoDb,看看数据库里面啥情况了,吐槽一下YAPI,连这功能都不全!!!

- 阅读剩余部分 -

2010年入手的小Y,就在这个月18号,终于寿终正寝了。这台电脑对我意义非凡,这是我入行的第一台设备,也是孩子接触计算机的第一台启蒙设备,所以当作电子垃圾丢掉实在是可惜,还是拆解一下,让孩子了解下电脑的硬件构成,顺便把可以使用的零件拆下来继续使用。

- 阅读剩余部分 -

在说Electron进程通信的时候,先说一下Electron中的两种进程:主进程和渲染进程。

主进程通过创建 BrowserWindow 实例来创建网页。 每一个 BrowserWindow 实例在其渲染过程中运行网页,当一个BrowserWindow 实例被销毁时,对应的渲染过程也会被终止。简单来说,一个客户端就是一个主进程。

渲染进程只能管理相应的网页,一个渲染进程的崩溃不会影响其他渲染进程。渲染进程通过 IPC 与主进程通信在网在页上执行 GUI 操作。 出于安全和可能的资源泄漏考虑,直接从渲染器进程中调用与本地 GUI 有关的 API 受到限制。简单来说,一个页面就是一个渲染进程。

注意:主进程管理所有网页及其对应的渲染进程

- 阅读剩余部分 -

为啥会有这个奇葩的需求呢?其实这个需求还是有很多场景存在的!

例如我在做的可视化平台这个产品,是分WEB版和Electron客户端,使用的都是一套Vue的代码,WEB版是方便线上开发使用,Electron是方便离线使用(离线的时候读取本地数据,在线的时候拉取服务端数据)。在WEB端,我需要给用户一个下载Electron端的地址,但是我在Electron端的时候,就不希望在显示这个链接,所以就需要做一个客户端的检测!对,就是userAgent检测!

var userAgent = navigator.userAgent.toLowerCase();
if (userAgent.indexOf(' electron/') > -1) {
   // Electron-specific code
}

通过上面的代码,就可以检测到现在代码是在Electron端运行还是在WEB端运行,我本地使用的是Electron 9,可以正常使用。

之前写的农历面板组件虽然是一个比较小众的组件,但是也确实帮助了一些小伙伴。现在组件已经趋于稳定,所以为了让组件能够帮助更多的伙伴,于是就把组件提交到了awesome-vue库,没想到很快就通过了,已经合并到了日历组中。趁这功夫,又把封装的flv.js的组件也一并提交上去了,希望能够帮助更多的人,如果用的舒服,还请给一个星星鼓励。

- 阅读剩余部分 -

NPM 源的设置比较粗暴的方式是直接配置:

npm config set registry <registry url>

但这会影响所有包的安装,如果只是为了某些包需要从私有源安装,比如 @scopename 下的所有包,可以单独配置该 scope 走私有源,其他包走正常的源安装。

例如,我封装了一个私有组件@wangdaodao/demo,那项目重创建配置文件.npmrc

@wangdaodao:registry=<registry url>

源的配置通过配置文件来设置,跟随项目,将变更依赖收敛到了项目中,不依赖全局的配置,同时也不影响其他项目,甚至能为不同的 scope 指定不同的 registry,达到多个 registry 同时工作的目的。

另外,管理NPM源,推荐使用nrm:NPM registry manager,切换源是特别方便的。具体可以看使用Verdaccio搭建NPM私有仓库