美文网首页VueVUE
Vue单页面应用首屏加载时间优化

Vue单页面应用首屏加载时间优化

作者: 镜轩夕照 | 来源:发表于2019-07-08 23:15 被阅读222次

vue全家桶

我们习惯用vue-cli搭建脚手架,再配合vue-router控制路由,vuex控制状态及复杂组件通讯,实现顺畅的spa应用,但是往往在项目应用插件框架时后首屏加载时间非常长。故此可做一些优化。

缩小webpack打包生成的包的大小

这里我们需要尽可能的减少生产环境下依赖的库数量,比如element如果可以的话需要什么组件就引入什么组件,而不是在main.js全局引入。开始优化的时候,就不知道从何处优化起,而且根本不知道生成的包中哪个依赖占据着空间,哪个库占用的空间最多。 所以有个webpack-bundle-analyzer的分析工具。安装:

$ npm install --save-dev webpack-bundle-analyzer

在webpack.prod.conf.js中配置

const BundleAnalyzerPlugin = require('webpack-bundle-analyzer').BundleAnalyzerPlugin;
plugins: [
new BundleAnalyzerPlugin(
     {
          analyzerMode: 'server',
          analyzerHost: '127.0.0.1',
          analyzerPort: 8888, // 运行后的端口号
          reportFilename: 'report.html',
          defaultSizes: 'parsed',
          openAnalyzer: true,
          generateStatsFile: false,
          statsFilename: 'stats.json',
          statsOptions: null,
          logLevel: 'info'
        }
     ),
]

这样后配置完成了,正常npm run build 结束后,就会自动打开一个打包生成文件的模块组成图在默认浏览器中,图中面积大的就是占据空间大的模块。


20190708.png

服务端渲染

服务端渲染不同于后端渲染,服务端渲染只是把当前的前端框架中的一部分js代码放到服务器上渲染,加载到浏览器上的html就不是一个空页面,这样可以减少首页的白屏时间,同时提高被搜索引擎检索的机会。服务端渲染有不少的局限,例如它的服务端必须依靠node服务器,我们可以使用使用基于vue的nuxt.js脚手架去开发,会减去繁琐的配置过程。

使用cdn或预加载

将一部分静态的页面直接渲染成html写在生成的index.html中,这种方式在加载完index.html后,就会有界面展示出来,无需等待加载js代码后再去渲染,所以这种方式也可以显著的减少首屏加载时间,也可以提高被搜索引擎检索的机会,同时预渲染的配置很简单,容易上手。

或者使用cdn把一些必要的库在index.html里面引入进去这样也能加快加载速度。

动态路由分块加载

这种优化,就是将每个组件的js代码独立出来,在使用到这个组件时,才向服务器请求文件,并且请求过一次后就会缓存下来,再次使用到这个组件时,就会使用缓存,不再发送请求。
配置很简单,只需要在vue-router中添加一些简单的配置即可

import Vue from 'vue'
import Router from 'vue-router'

Vue.use(Router);

export default new Router({
  mode: 'history',
  linkActiveClass: 'router-link-active',
  routes: [
    {
      path: '/',
      // 这里只需要把原来从外部引入的组件换成以下的语句就可以了
      component: resolve => require(['../components/(你的组件)'], resolve)
    },
  ]
})

相关文章

  • (转载)vue项目首屏加载优化实战

    vue项目首屏加载优化实战 问题 单页面应用的一个问题就是首页加载东西过多,加载时间过长。特别在移动端,单页面应用...

  • Vue单页面应用首屏加载时间优化

    vue全家桶 我们习惯用vue-cli搭建脚手架,再配合vue-router控制路由,vuex控制状态及复杂组件通...

  • vue首屏优化方法

    vue是典型的单页应用,我们知道单页应用首屏一次性加载所有资源,当项目资源比较大的时候,首次加载可能出现页面卡顿等...

  • React的服务端渲染框架Next.js的简介

    为什么需要使用Next.js react/vue/angular: 虽然是单页面应用,但是会导致首屏加载过慢,不...

  • 单页面 VS 多页面

    单页面与多页面对比图 单页面应用缺点:1.首屏时间慢,SEO差:单页应用的首屏时间慢,首屏时需要请求一次html,...

  • Vue首屏加速-路由懒加载

    Vue-spa项目由于单页面应用的特性都会面临首屏加载速度的问题。解决这个问题的途径也有很多。但是路由懒加载绝对是...

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

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

  • react组件懒加载的四种方式

    懒加载 :为什么 解决页面假死状态 单页面vue和react,,只有一个HTML,首屏加载慢,后期切换比较快,不利...

  • react组件懒加载的四种方式

    懒加载 :为什么? 解决页面假死状态 单页面vue和react,,只有一个HTML,首屏加载慢,后期切换比较快,不...

  • 构建工具

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

网友评论

    本文标题:Vue单页面应用首屏加载时间优化

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