前端性能优化,如何提高首屏加载速度?
当项目代码量达到一定级别,我们就会发现我们首次进入项目的时间特别长,其原因就是打包过后的app.js大小过大,加载需要一定的时间。
那我们有什么方法可以进行性能优化呢?
关于性能优化
在开始之前,我们需要明白一个原则:性能优化的最终目的是提升用户体验。\ 简而言之就是让用户感觉这个网站很「快」(至少不慢hh),这里的「快」有两种,一种是「真的快」一种是「觉得快」
- 「真的快」:可以客观衡量的指标,像网页访问时间、交互响应时间、跳转页面时间
- 「觉得快」:用户主观感知的性能,通过视觉引导等手段转移用户对等待时间的关注
对症下药
我们知道是app.js文件太大,加载时间太长导致了首屏加载速度过慢,我们就需要对症下药减小app.js的大小,提高网站访问速度,
一、压缩:
对代码进行压缩,我们可以减小代码的体积量。
二、路由懒加载:
当我们使用路由懒加载后,项目就会进行按需加载,其原理就是利用webpack大法的code splitting,当你使用路由加载的写法,webpack就会对app.js进行代码分割,减小app.js的体积,从而提高首屏加载数点。
没使用路由懒加载前的app.js:
使用路由懒加载后对app.js进行code splitting:
三、CDN引入:
采用CDN引入,在index.html使用CDN引入,并在webpack配置。打包之后webpack进会从外部打包第三方引入的库,减小app.js的体积,从而提高首屏加载速度。
没使用CDN引入前app.js的大小:
使用CDN引入后app.js的大小:
四、SSR服务器渲染:
有局限性,禁用了beforeCreate()和created()之外的其他生命周期,我自己没有尝试过使用,但这是一种方案。
五、增加带宽:
增加带宽可以提高资源的访问速度,从而提高首批的加载速度,我司项目带宽由2M升级到5M,效果明显。
六、提取第三方库 vendor:
这是也是webpack大法的code splitting,提取一些第三方的库,从而减小app.js的大小。
以上只是一些针对性的方案,web性能优化还有很多,这里简单列举这几种,希望能够帮助到大家。
笔者往期好文:
- 东东吖带你打通全栈,go-vue-react项目介绍
- 【vue进阶之旅】如何自定义组件v-model,封装属于自己的组件库?
- 【vue进阶之旅】如何使用keep-alive做组件缓存?
- 发生跨域的时候,服务器到底有没有接收到请求?
- vue进阶之路:vue3.2-setup语法糖、组合式API、状态库Pinia归纳总结
- 跨域问题及前后端常见解决方案?
- 微信小程序如何分包?
- 前端性能优化,如何提高首屏加载速度?
- 项目中的配置文件都是干嘛的?
- 从0到1学习Node.js系列教程(第一篇):API接口初体验
- 父子组件的生命周期执行流程是怎么样的呢?
- 1024程序员这天,我发现了掘金官方的一个bug。
- 组件通信的8种方式,你搞清楚了吗?
- 手把手教你利用XSS攻击体验一次黑客