vue路由懒加载_优化vue项目的首屏加载速度

     最近使用vue-cli3构建了一个小型的博客系统,完工之后,build打包出来发现一个chunk-vendors包就有1.1m,部署上去之后,访问的时候,首屏加载非常慢。居然需要21s,体验极差。

94c5fddec7e734b464ef42fca3a95cfe.png

这是打包的结果截图

733b33336aaf77a368ea9bd6a85bed60.png

根据这种情况,进行了一下优化:

一、路由懒加载

       结合Vue的异步组件再结合webpack的代码分割,我们可以轻松的实现路由懒加载。路由懒加载的实现有几种方法,这里我就使用了 resolve。

      这一种方法较常见。它主要是使用了 resolve 的异步机制,用 require 代替了

import,实现按需加载。如下:

修改router./index.js文件之前

0ff81ae154d602219b28f9c884e075fa.png

 修改之后

d2fd588e41d16b2a0516a3ecc6abc7c7.png

进行一次打包 npm run build:

1b8ad204719b725a59b76fda58ebf797.png

发现打包的结果有了变化,对比一下开始时候的的chunk-vendors,体积减小了大概700k,但是还是太大了。需要继续优化。

二、服务器开启Gzip

      Gzip是GNU zip的缩写,是一种压缩技术。它将浏览器请求的文件先在服务器端进行压缩,然后传递给浏览器,浏览器解压之后再进行页面的解析工作。在服务端开启Gzip支持后,我们前端需要提供资源压缩包。

      通过 CompressionWebpackPlugin插件进行打包的时候压缩

安装插件 cnpm i --save compression-webpack-plugin

  修改vue.config.js文件:

09da91e76ed1b822fb35bc0b58561e4b.png

打包效果如图:

d6707216e325d5b1af36b2865e21bbfe.png

看到 Gzipped那一列,发现Gzip已经把文件减少了2/3了。

接下来,就是需要开启一下服务端的Gzip

修改nginx.conf配置文件:(一般在  /etc/nginx/ngin.conf)

找到该文件,配置如下:

58b3d70972f0e67ff88fb9b3a7d8c6a2.png

修改之后,别忘了重启一下nginx, 进入带nginx的安装目录下(一般在:/usr/sbin),执行 ./nginx -s reload。

到了这一步,gzip基本已经优化完成。

让我们来继续优化

三 、去除console来减少文件大小

  安装 uglifyjs-webpack-plugin

cnpm install uglifyjs-webpack-plugin --save-dev

配置vue.config.js:

59e89fbffee78584719abc9fb30361c2.png

如果代码中有很多log,优化就会很明显了。

上面三种就是我使用的首屏加载优化的方法,让我们放到服务器上面看下效果

177a806f914dfdf21527cba3f550f290.png

可以发现,相比之前的首屏加载速度还是提升了不少的。

小结

以上就是我使用的三种首屏优化方式,当然,首屏优化方式还不止这些,还可以用到的方法有:静态资源、不常用改动的js库可以使用CDN加速;ssr服务端渲染;通过webpack配置避免组件重复打包;从代码层面去减少代码量(提高代码复用率)等等方法,需要以后去钻研一下。

以上是关于vue首屏优化的全部内容,希望对大家的学习有所帮助。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值