vue项目首屏加载过慢的一些解决方案

 更新时间:2022年12月12日 11:18:55   作者:Poppy_01  
最近碰到vue项目打包上线后,第一次打开首页后会出现空白、加载时间过长的情况,下面这篇文章主要给大家介绍了关于vue项目首屏加载过慢的一些解决方案,文中通过实例代码介绍的非常详细,需要的朋友可以参考下

前言

因为我的一个vue项目首页打开加载了好久,所以决定优化一下。发现是打包体积太大了,页面才加载慢主要是第三方库。
优化着优化着就想要更好一点,于是逛博客搜索,参照了几个博主的解决方法整理出一下几点。​

一、防止编译文件中出现map文件

在 config/index.js 文件中将productionSourceMap的值设置为false.

二、使用CDN加载第三方库

在打包后发现chunk-vendor.js 文件占用内存特别大,这里面主要是使用的一些第三方库,例如 vue-router,axios,elementUI ,echarts等文件。

通过在index.html 中直接引入第三方资源来缓解我们服务器的压力,其原理是将我们的压力分给了其他服务器站点。

推荐外部的库文件使用CDN资源

bootstrap CDN:https://www.bootcdn.cn
Staticfile CDN:https://www.staticfile.org
jsDelivr CDN:https://www.jsdelivr.com
75 CDN:https://cdn.baomitu.com
UNPKG:https://unpkg.com
cdnjs:https://cdnjs.com

使用方法

第一步 在index.html文件中引入第三方库

第二步 去vue-config文件中去配置externals,写上你已经在index.html中引用了cdn的库。

三、图片资源压缩以及使用图片懒加载

可以用精灵图等减少http请求

四、vue-router 路由懒加载

懒加载即组件延迟加载,通常vue的页面在运行后进入都会有一个默认的页面,而其他未显示的页面只有在点击后才需要加载出来,实现按需请求,从而减少第一次加载的时候耗时。

懒加载路由配置:

const xxx= () => import('@/pages/xxx')

五、gzip压缩

前端配置gzip压缩,并且服务端使用nginx开启gzip,用来减小网络传输的流量大小。

第一步

命令行执行:npm i compression-webpack-plugin -D

第二步

在webpack的dev开发配置文件中加入如下代码:

const CompressionWebpackPlugin = require('compression-webpack-plugin')
plugins: [
   new CompressionWebpackPlugin()
]

六、前端代码优化

  • 合理使用v-if和v-show
  • 使用定时器和回调函数等记得销毁
  • 避免意外的全局变量
  • 适当使用闭包避免内存泄漏

总结

到此这篇关于vue项目首屏加载过慢的一些解决方案的文章就介绍到这了,更多相关vue首屏加载过慢内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • vue 实现边输入边搜索功能的实例讲解

    vue 实现边输入边搜索功能的实例讲解

    今天小编就为大家分享一篇vue 实现边输入边搜索功能的实例讲解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-09-09
  • Vue2.0实现购物车功能

    Vue2.0实现购物车功能

    这篇文章主要为大家详细介绍了Vue2.0实现购物车功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-06-06
  • vue计算属性computed方法内传参方式

    vue计算属性computed方法内传参方式

    这篇文章主要介绍了vue计算属性computed方法内传参方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-10-10
  • 绘制flowable 流程图的Vue 库使用详解

    绘制flowable 流程图的Vue 库使用详解

    这篇文章主要为大家介绍了绘制flowable 流程图的Vue 库使用详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-09-09
  • vue 实现超长文本截取,悬浮框提示

    vue 实现超长文本截取,悬浮框提示

    这篇文章主要介绍了vue 实现超长文本截取,悬浮框提示,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-07-07
  • vue3中reactive不能直接赋值的解决方案

    vue3中reactive不能直接赋值的解决方案

    这篇文章主要介绍了vue3中reactive不能直接赋值的解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-05-05
  • 详解Vue的组件注册

    详解Vue的组件注册

    组件是Vue.js最强大的功能之一。组件可以扩展HTML元素,封装可重用的代码。在较高层面上,组件是自定义元素,Vue.js 的编译器为它添加特殊功能,需要的朋友可以参考下
    2023-05-05
  • Vue父组件向子组件传值以及data和props的区别详解

    Vue父组件向子组件传值以及data和props的区别详解

    这篇文章主要介绍了Vue父组件向子组件传值以及data和props的区别详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-03-03
  • vue中的严格模式如何取消

    vue中的严格模式如何取消

    这篇文章主要介绍了vue中的严格模式如何取消,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-04-04
  • 使用Vue做一个简单的todo应用的三种方式的示例代码

    使用Vue做一个简单的todo应用的三种方式的示例代码

    这篇文章主要介绍了使用Vue做一个简单的todo应用的三种方式的示例代码,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-10-10

最新评论