美文网首页
vue首屏加载优化

vue首屏加载优化

作者: 北暖37 | 来源:发表于2022-06-15 10:41 被阅读0次

业务需要,从A网站跳转到B网站,网站加载慢,白屏时间有十几秒,影响用户体验,对项目进行了优化

技术栈:vue2+webpack
1、vue-router路由懒加载
// 1、Vue异步组件技术:
{
  path: '/home',
  name: 'Home',
  component: resolve => require(['../views/home.vue'], resolve)
}

// 2、es6提案的import()
{
  path: '/',
  name: 'home',
  component: () => import('../views/home.vue')
}

// 3、webpack提供的require.ensure()
{
  path: '/home',
  name: 'Home',
  component: r => require.ensure([],() =>  r(require('../views/home.vue')), 'home')
}
2、cdn资源优化,

可以将vue,vue-router, vuex, axios等这些全家桶,改成cdn引入,同时vue.config.js引入进行修改

// index.html
<body>
  <div id="app"></div>
    <script src="https://cdn.bootcss.com/vue/2.6.10/vue.min.js"></script>
    <script src="https://cdn.bootcss.com/axios/0.19.0-beta.1/axios.min.js"></script>
    <script src="https://cdn.bootcss.com/vuex/3.1.0/vuex.min.js"></script>
    <script src="https://cdn.bootcss.com/vue-router/3.0.2/vue-router.min.js"></script>
    <script src="https://cdn.bootcss.com/element-ui/2.6.1/index.js"></script>
</body>


// vue.concong.js 配置externals属性
module.exports = {
 ···
    externals: {
      'vue': 'Vue',
      'vuex': 'Vuex',
      'vue-router': 'VueRouter',
      'axios':'axios'
    }
 }
3、通过webpack gzip压缩文件,同时ngixn配置gzip压缩

gzip 对基于文本格式文件的压缩效果最好(如:CSS、JavaScript 和 HTML),在压缩较大文件时往往可实现高达 70-90% 的压缩率

// 先安装   npm install compression-webpack-plugin --D
// vue.config.js
const CompressionPlugin = require('compression-webpack-plugin')
configureWebpack: (config) => {
  if (process.env.NODE_ENV === 'production') {
    config.plugins.push(
      new CompressionPlugin({
        // gzip压缩配置
        test: /\.js$|\.html$|\.css/, // 匹配文件名
        threshold: 10240, // 对超过10kb的数据进行压缩
        deleteOriginalAssets: false, // 是否删除原文件
      })
    )
  }
}
4、webpack-bundle-analyzer

利用webpack-bundle-analyzer分析大文件,找出内鬼,逐个优化

// 先安装  npm install webpack-bundle-analyzer -D
// vue.config.js
const BundleAnalyzerPlugin = require('webpack-bundle-analyzer').BundleAnalyzerPlugin  
module.exports = {     
   ...其它     
   configureWebpack: [         
   plugins: [             
      new BundleAnalyzerPlugin() // 分析打包大小使用默认配置         
   ]    
  },  
}

执行npm run build会自动打开服务,可以看到js大小


1.jpg

1.文件可以通过cdn引入,版本要对应
2.ant-design 按需引入
3.代码压缩,需要服务端配合

5、splitChunks 代码分割
config.optimization.splitChunks({ // 代码分割
      cacheGroups: {
        common: {
          name: 'chunk-common', // 打包后的文件名
          chunks: 'all', // 共有3个值"initial","async"和"all"。配置后,代码分割优化仅选择初始块,按需块或所有块
          minChunks: 2, // (默认值:1)在拆分之前共享模块的最小块数
          maxInitialRequests: 5, //(默认值为3)入口点的最大并行请求数
          minSize: 0, // (默认值:30000)块的最小大小
          priority: 1, // 数字越大优先级越高 (-10大于-20)
          reuseExistingChunk: true // 允许在模块完全匹配时重用现有的块,而不是创建新的块。
        },
        vendors: {
          name: 'chunk-vendors',
          test: /[\\/]node_modules[\\/]/,
          chunks: 'initial',
          priority: 2,
          reuseExistingChunk: true,
          enforce: true
        },
        antDesignVue: {
          name: 'chunk-ant-design-vue',
          test: /[\\/]node_modules[\\/]ant-design-vue[\\/]/,
          chunks: 'all',
          priority: 3,
          reuseExistingChunk: true,
          enforce: true
        }
      }
    })
2.png
6、移除preload&prefetch
// vue.config.js
chainWebpack: config => {
    // 移除 prefetch预取 插件
    config.plugins.delete('prefetch')
    // 移除 preload 预加载 插件 避免加载多余的资源
    config.plugins.delete('preload')
}

相关文章

  • 常见面试题--js+css+vue

    1、变量提升、函数提升 2、数组的常用方法 3.优化首屏加载速度 4.Vue 首屏加载速度优化 5、Vue如何设置...

  • 构建工具

    Vue 首屏加载优化 关于 Vue 首屏加载优化的一点总结为什么我们要做三份 Webpack 配置文件 在知乎上我...

  • vue首屏加载优化

    1.异步路由加载 2.不打包库文件 spa首屏加载慢,主要是打包后的js文件过大,阻塞加载所致。那么如何减小js的...

  • VUE首屏加载优化

    (1)组件按需加载;对Element-UI, Mint-UI组件进行按需加载;(2)路由组建懒加载;异步加载con...

  • vue首屏加载优化

    https://segmentfault.com/a/1190000010042512

  • Vue首屏加载优化

    Vue在开发WebApp的时候,有一个致命的缺点,那就是首次加载事件过长,本篇文章主要使用各种方法缩减文件大小,并...

  • vue首屏加载优化

    业务需要,从A网站跳转到B网站,网站加载慢,白屏时间有十几秒,影响用户体验,对项目进行了优化 技术栈:vue2+w...

  • ssr个人初探

    ssr的好处主要以下两点 (1)优化首屏加载,使用vue-ssr可以把数据渲染成HTML, 并在首屏展示, 用户体...

  • vue打包优化

    vue打包优化 首屏加载慢也是网络慢资源也比较大如下图,加载完需要15s......崩了...image 配置到了...

  • Vue SPA 首屏加载优化实践

    写在前面 本文记录笔者在Vue SPA项目首屏加载优化过程中遇到的一些坑及优化方案! 我们以 vue-cli 工具...

网友评论

      本文标题:vue首屏加载优化

      本文链接:https://www.haomeiwen.com/subject/wnczmrtx.html