在Vue项目中导入外部字体的几个注意点

因为项目里有需求,要做一个代码展示。既然要做代码展示,高亮可以用highlight.js(当然这里没有这个需求,只是单纯做一个展示),同时字体也是必不可少的,用浏览器的默认字体总觉得差点啥,所以就有此一说。找了半天,我用了Source Code Pro这个开源的字体,用的是Google提供的字体服务。

本来应该是没啥需要注意的,大家都知道,只要从网上把字体下下来,然后放在项目里让webpack一起打包就行了,但是字体这种东西,打包在一起有点大,会增加打包的体积。可能有人说,我可以异步加载,可以shake(把字体里用不上的部分shake掉,对性能有特殊追求的同学可以试试,有一些解决方案),可以split,但是即使是静态资源,只要跟项目放在一起,就会占用服务器的带宽,间接降低并发量,所以最好还是拿出来;更何况这又不是那些必须要有的依赖,没有字体也能照样展示,就是不太好看罢了。

但是拿出来之后又有一个问题。如果说放在head里,啥都不加,肯定会阻塞渲染,显然是不好的;加个defer,或者在我这个场景下,放在Vue的mounted钩子里,又会导致界面闪烁。之前听说有个preload还不错,就试着用一下。

然后因为我用了vue-meta这个库,这个库似乎不能配置link的as、crossorigin这几个属性,着实有点难受,只能在mounted里创建一个link标签来配置:

mounted</
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值