vue首次加载很慢

总结原因

1.由于vendor.js和app.css较大,UI渲染线程并不会优先加载他俩,但是VUE等主流的单页面框架都是js渲染html body的,所以必须等到vendor.js和app.css加载完成后完整的界面才会显示。
2.还有一个原因就是单页面首次会把所有界面和接口都加载出来,会有多次的请求和响应,数据不能马上加载。

解决方式

1.vue-router 路由懒加载

const HelloWorld = () => import('@/components/HelloWorld')

export default new Router({
  routes: [
    {
      path: '/',
      name: 'HelloWorld',
      component: HelloWorld
    }
  ]
})

2.使用CDN加载

<body>
    <div id="app"></div>
    <!-- built files will be auto injected -->
    <script src="https://cdn.staticfile.org/vue/2.4.3/vue.min.js"></script>
    <script src="https://cdn.staticfile.org/vuex/3.0.0/vuex.min.js"></script>
    <script src="https://cdn.staticfile.org/vue-router/3.0.0/vue-router.min.js"></script>
  </body>

3.防止编译文件中出现map文件
config/index.js 文件中设置 productionSourceMap 为 false

1571725304(1).jpg

4.使用gzip压缩
1).修改config/index.js 文件下 productionGzip:true ;
2).安装依赖 npm install --save-dev compression-webpack-plugin
5.去掉代码中的console.log,打包之后控制台很干净,部署正式环境之前最好这样做

在build\webpack.prod.conf.js文件下

new UglifyJsPlugin({
      uglifyOptions: {
        compress: {
          warnings: false,
          drop_debugger: true,
          drop_console: true
        }
      },
      sourceMap: config.build.productionSourceMap,
      parallel: true
    })
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容